我正在尝试使用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"在列表中(技术上,在集合中)。
有什么想法吗?
答案 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_Angeles
和Etc/GMT
,而z
模式仅格式化/解析区域名称。
V
模式必须至少为2长,即VV
。