Java 8 - DateTimeFormatter和ISO_INSTANT与ZonedDateTime的问题

4 浏览
0 Comments

Java 8 - DateTimeFormatter和ISO_INSTANT与ZonedDateTime的问题

所以我期望这段代码在新的Java 8日期/时间包下能够工作,因为它只是将给定的ZonedDateTime转换为字符串,然后再使用相同的内置DateTimeFormatter实例(ISO_INSTANT)将其转换回来:

ZonedDateTime now = ZonedDateTime.now();
System.out.println(ZonedDateTime.parse(
    now.format(DateTimeFormatter.ISO_INSTANT),
    DateTimeFormatter.ISO_INSTANT));

但显然它并没有起作用:

Exception in thread "main" java.time.format.DateTimeParseException: 无法解析文本'2014-09-01T19:37:48.549Z':无法从TemporalAccessor获取ZonedDateTime:{MilliOfSecond=549, NanoOfSecond=549000000, MicroOfSecond=549000, InstantSeconds=1409600268},类型为java.time.format.Parsed
    at java.time.format.DateTimeFormatter.createError(DateTimeFormatter.java:1918)
    at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1853)
    at java.time.ZonedDateTime.parse(ZonedDateTime.java:597)

我已经看过这个条目了,但它并没有帮助我,因为我需要一个ZonedDateTime对象而不是一个本地对象,而且我已经安装了8u20:Unable to obtain ZonedDateTime from TemporalAccessor using DateTimeFormatter and ZonedDateTime in Java 8

有人知道这里发生了什么吗?

0