Проблема:
Я должен проанализировать строку даты RFC3339. Он отлично работает с ISO_ZONED_DATE_TIME:
ZonedDateTime.parse("1985-04-12T23:20:50.52Z", ISO_ZONED_DATE_TIME);
ZonedDateTime.parse("1996-12-19T16:39:57-08:00", ISO_ZONED_DATE_TIME);
Допустим, я исправлю проблему Unknown Local Offset Convention, чтобы просто не принимать эти даты. Но у меня все еще есть проблема с некоторыми угловыми случаями, такими как это:
1990-12-31T23:59:60Z
Это представляет собой дополнительную секунду, введенную в конце 1990 года.
1990-12-31T15:59:60-08:00
Это та же самая дополнительная секунда стандартного тихоокеанского времени, которая на 8
часов отстает от UTC."1990-12-31T15:59:60-08:00"
Вопрос:
- Как я могу разобрать его, чтобы не потерять секунды?
Обновление:
- Существует ли какая-либо альтернатива ZonedDateTime, которая хорошо подходит для RFC3339?
ZonedDateTime.getSeconds()
возвращает значение в диапазоне от 0 до 59 включительно. Были бы вы счастливы, если бы он вместо этого возвращал полночь UTC в начале 1991 года? - person Jon Skeet   schedule 23.03.2019