Java 8 - DateTimeFormatter 和 ZonedDateTime 的ISO_INSTANT问题
因此,我希望此代码在新的Java 8日期/时间包下工作,因为它所做的只是使用相同的内置DateTimeTer实例(ISO_INSTANT)将给定的ZonedDateTime转换为字符串并返回:
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: Text '2014-09-01T19:37:48.549Z' could not be parsed: Unable to obtain ZonedDateTime from TemporalAccessor: {MilliOfSecond=549, NanoOfSecond=549000000, MicroOfSecond=549000, InstantSeconds=1409600268},ISO of type 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:无法使用Java 8中的DateTimeFormatter和ZonedDateTime从TemporalAccessor获取ZonedDateTime。
有人知道这里发生了什么吗?