JodaTime смущен смещением TimeZone
Я получаю строку типа даты "2018-06-21T13:30:00Z"
Разбираю это по шаблону "yyyy-MM-dd'T'HH:mm:ssZ"
Я в GMT+2, и результат выглядит 2018-06-21T15:30:00.000+02:00
в то время как я ожидал, что это будет выглядеть так 2018-06-21T13:30:00.000+02:00
Предполагается, что смещение уже применяется в HH:mm:ss
часть результата?
Код
DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ssZ").parseDateTime("2018-06-21T13:30:00Z")
Joda:2.9.7
1 ответ
Да, указывается дата по местному времени +02:00.
Из ISO 8601 Википедия Смещение по времени от UTC:
Все следующие моменты времени относятся к одному и тому же моменту: "18:30Z", "22:30+04", "1130−0700" и "15:00−03:30". Буквы навигационного часового пояса не используются, за исключением Z. Для вычисления времени UTC необходимо вычесть смещение из местного времени, например, для "15: 00−03: 30" до 15:00 - (−03: 30) чтобы получить 18:30 UTC.
Итак, для вашего случая: 2018-06-21T15:30:00.000+02:00
означает 15:30 - 02:00, поэтому UTC 13:30