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数据