java – 尝试将PDT中的日期时间解析为ZonedDateTime表示

我该如何解析PDT时区中的日期时间值?

06/24/2017 07:00 AM (PDT)

我想维护时区,以便我可以根据网站访问者的偏好来表示其他时区的时间.

我尝试使用ZonedDateTime但是我得到一个解析错误:

   java.time.ZonedDateTime.parse("06/24/2017 07:00 AM (PDT)")

错误是:

java.time.format.DateTimeParseException: Text '06/24/2017 07:00 AM (PDT)' could not be parsed at index 0
   at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)
   at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
   at java.time.ZonedDateTime.parse(ZonedDateTime.java:597)
   at java.time.ZonedDateTime.parse(ZonedDateTime.java:582)   ... 29 elided

另外,你是否同意我应该使用ZonedDateTime?

解决方法:

由于您的格式是非标准格式,因此您需要将其指定给解析器:

ZonedDateTime.parse(
    "06/24/2017 07:00 AM (PDT)", 
    DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm a (zzz)")
);
上一篇:java-为什么Jackson的默认解串器将Zone设置为UTC而不是Z?


下一篇:java – ZonedDateTime成功解析但输出字符串不同