Joda DateTime DateTimeZone

时间:2014-10-16 18:01:22

标签: java android timezone jodatime dst

+我有一个时间跟踪应用程序,它使用joda DateTime来保持ORM-lite的开始/结束时间。 ORM-lite使用millis在数据库中存储Joda DateTime。 Joda DateTime.getMillis()以UTC格式返回毫秒数。

我们会在几天内从夏令时转为正常时间,而且我不确定我的应用是否会正确处理此问题。

为了测试它我试图禁用"自动日期&时间(使用网络提供的时间)"设置我的设备并将日期更改为具有正常时间的日期。所选时区的文本立即从GMT +02:00更改为GMT + 01:00

我希望我所有的时间记录都提前一小时(实际上是时间跟踪应用程序中的失败),但事实并非如此。 当我将时区设置为例如阿布扎比格林尼治标准时间+4:00所有时间记录都是两小时后。 这对我来说很有意义,因为使用我的默认时区创建的条目是GMT +02:00。 当我从夏令时切换到正常时间时,为什么不是这种情况?

干杯, 斯蒂芬

1 个答案:

答案 0 :(得分:0)

我想我对事情的运作方式有错误的理解。

样品:

DateTime dtNow = new DateTime(1414479634046);

我认为从正常时间切换到DST时“dtNow”会发生变化。我认为DST的行为就像一个单独的时区,但事实并非如此。 当Millis Joda“恢复”日期时,查看日期并确定它是正常还是夏令时。