2014-10-16 70 views
1

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

几天后,我们从夏令时切换到正常时间,并且我不能100%确定我的应用是否能够正确处理此问题。

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

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

干杯, 斯特凡

+0

你不明白你在问什么。请提供示例代码,以及具体的实际值和期望值,包括时间戳和时区。谢谢。 – 2014-10-27 16:16:42

+0

感谢您的评论。我已经找到答案并在下面发布。 – stefan 2014-10-28 07:10:20

回答

0

我猜我的事情是如何工作的一个错误的认识。

样品:

DateTime dtNow = new DateTime(1414479634046); 

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