我有个日期:
"Wed Dec 31 00:00:00 GMT-8 1969"但是它不能用这个SimpleDateFormat解析:
new SimpleDateFormat("EEE MMM dd hh:mm:ss zzz yyyy");如何在格式字符串中指定-8?在阅读了SDF文档后,我尝试了Z和X,但无济于事。我应该使用什么?
发布于 2016-07-09 09:01:30
-8的使用采用非国际标准化组织标准格式。
应该是像-0800或-08:00这样的东西。这是因为时间偏移量可以包括半小时。
您应该在将字符串传递给SimpleDateFormat之前对其运行预处理转换,并将其更改为"Wed Dec 31 00:00:00 GMT-0800 1969",然后使用:
new SimpleDateFormat("EEE MMM dd hh:mm:ss Z yyyy");
如果想让它更简单,只需创建一个用America/Los_Angeles替换-8的方法并使用ZZZ即可。
发布于 2016-07-09 14:28:52
如果你使用的是java8,你可以尝试使用"EEE MMM d HH:mm:ss O yyyy"模式的DateTimeFormatter,比如:
String date = "Wed Dec 31 00:00:00 GMT-8 1969";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE MMM d HH:mm:ss O yyyy");
LocalDateTime dateTime = LocalDateTime.parse(date, formatter);O表示本地化区域偏移,可以像GMT+8、GMT+08:00、UTC-08:00一样格式化区域偏移。您可以在DateTimeFormatter中查看Offset O以了解更多详细信息。
https://stackoverflow.com/questions/38277202
复制相似问题