Joda-Time DateTimeZone

时间:2013-09-11 16:09:21

标签: java timezone jodatime

我有一个单元测试试图验证以色列/伦敦之间的某些行为,我检查的第一件事是Asia/Jerusalem中的时区偏移,如下所示

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。

我正确使用Joda,还是错误的时间?这个周末之前这些测试都没问题。这是版本joda-time 2.1

1 个答案:

答案 0 :(得分:2)

以色列的时区规则发生了变化。您需要使用2013年版的IANA时区数据库。这包含在JodaTime 2.3中。

如果无法更新JodaTime,可以在these instructions之后单独更新TZDB数据。