Java 乔达时区

Java 乔达时区,java,timezone,jodatime,Java,Timezone,Jodatime,我有一个单元测试,它试图验证以色列/伦敦之间的一些行为,我首先检查的是亚洲/耶路撒冷中的时区偏移,如下所示 val clientTimezone = DateTimeZone.forID("Asia/Jerusalem") val now = new DateTime(DateTimeZone.forID("Etc/GMT")) val clientOffset = clientTimezone.getOffset(now) / (1000 * 60) 现在伦敦是下午5点,以色列是晚上7点,格

我有一个单元测试,它试图验证以色列/伦敦之间的一些行为,我首先检查的是
亚洲/耶路撒冷
中的时区偏移,如下所示

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。如果我用
亚洲/耶路撒冷
交换
欧洲/伦敦
我会得到
客户补偿
=60


我是正确使用了Joda,还是时间不对?在这个周末之前,这些测试都很好。这是joda time 2.1版,以色列的时区规则已更改。您需要使用IANA时区数据库的2013d版本。这包含在JodaTime 2.3中

如果无法更新JodaTime,则可以在下面单独更新TZDB数据