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

时间:2017-04-05 22:36:32

标签: java parsing java-8 timezone

我正在尝试使用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");

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

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

有什么想法吗?

1 个答案:

答案 0 :(得分: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

正如您所看到的,V模式将格式化/解析区域ID,例如America/Los_AngelesEtc/GMT,而z模式仅格式化/解析区域名称。

V模式必须至少为2长,即VV