2013-09-11 3 views
0

У меня есть модульный тест, который пытается проверить некоторое поведение между Израилем/Лондоном, одна из первых вещей, которые я проверить это смещение часового пояса в Asia/Jerusalem следующегоJoda время DateTimeZone

val clientTimezone = DateTimeZone.forID("Asia/Jerusalem") 
val now = new DateTime(DateTimeZone.forID("Etc/GMT")) 
val clientOffset = clientTimezone.getOffset(now)/(1000 * 60) 

Сейчас это 5 вечер в Лондон, 7 вечера в Израиле, и 4 вечера по Гринвичу, но когда я запускаю этот код я получаю now инициализирована до 16:00, и clientOffset = 120 не 180. Если бы я поменять Asia/Jerusalem для Europe/London я получаю clientOffset = 60.

Am Я правильно использую Joda, или у вас есть неправильное время? Эти испытания были прекрасны до выходных. Это с версией joda-time 2.1

ответ

2

Изменены правила часовых поясов для Израиля. Вам понадобится использовать версию базы данных IANA в 2013 году. Это включено в JodaTime 2.3.

Если вы не можете обновить JodaTime, вы можете обновить данные TZDB отдельно, следуя these instructions.

Смежные вопросы