Java 8 DateTimeFormatter无法解析"Etc/GMT"时区

Ale*_*der 3 java timezone parsing java-8

我正在尝试使用java.time.format.DateTimeFormatter来解析日期,如"2017-04-03 19:16:19 Etc/GMT"并获取 java.time.format.DateTimeParseException: Text '2017-04-03 19:16:19 Etc/GMT' could not be parsed at index 20

这是我的格式化程序的初始化方式:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss zzz");
Run Code Online (Sandbox Code Playgroud)

同时,如果日期如下:"2017-04-03 19:16:19 Etc/UTC ",一切都很好.

我检查了java.time.ZoneId.getAvailableZoneIds()- 字符串"Etc/GMT"在列表中(技术上,在Set中).

有任何想法吗?

And*_*eas 5

使用DateTimeFormatter模式"yyyy-MM-dd HH:mm:ss VV":

V       time-zone ID                zone-id           America/Los_Angeles; Z; -08:30
z       time-zone name              zone-name         Pacific Standard Time; PST
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,V模式将格式化/解析区域ID,如America/Los_AngelesEtc/GMT,而该z模式只格式/解析区域名称.

V图案必须至少2个长的,即VV.