Java 8 DateTimeFormatter无法解析;Etc/GMT“;时区
我正在尝试使用java.time.format.DateTimeFormatter解析日期,如“2017-04-03 19:16:19 Etc/GMT”,并获取Java 8 DateTimeFormatter无法解析;Etc/GMT“;时区,java,parsing,java-8,timezone,Java,Parsing,Java 8,Timezone,我正在尝试使用java.time.format.DateTimeFormatter解析日期,如“2017-04-03 19:16:19 Etc/GMT”,并获取java.time.format.DateTimeParseException:无法在索引20处解析文本“2017-04-03 19:16:19 Etc/GMT” 以下是我的格式化程序的初始化方式: DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd
java.time.format.DateTimeParseException:无法在索引20处解析文本“2017-04-03 19:16:19 Etc/GMT”
以下是我的格式化程序的初始化方式:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss zzz");
同时,如果日期如下:“2017-04-03 19:16:19 Etc/UTC”,则一切正常
我选中了java.time.ZoneId.getAvailableZoneIds()
-字符串“Etc/GMT”在列表中(从技术上讲,在集合中)
有什么想法吗?使用模式“yyyy-MM-dd HH:MM:ss VV”
:
V时区ID美国/洛杉矶;Z-08:30
z时区名称时区名称太平洋标准时间;PST
如您所见,V
模式将格式化/解析区域Id,如America/Los_Angeles
和Etc/GMT
,而z
模式仅格式化/解析区域名称
V
模式必须至少有2个长度,即VV
使用“yyyy-MM-dd HH:MM:ss VV”
,这很快!非常感谢。你们能把它作为答案贴出来吗?这个问题对其他人没用。已经显示,V
是匹配命名时区的格式字母,而不是z
。删除这个问题。好吧,我想我是唯一一个可以在这样的事情上浪费几个小时的人…@Andreas-这值得一提,IMHO。