Поэтому я ожидаю, что этот код будет работать под новым пакетом дата/время 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: 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: Не удалось получить ZonedDateTime от TemporalAccessor с использованием DateTimeFormatter и ZonedDateTime в Java 8
Кто-нибудь знает, что здесь происходит?