Java 8 DateTimeFormatter无法解析;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.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 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。