+我有一个时间跟踪应用程序,它使用 joda DateTime 来通过 ORM-lite 保存开始/结束时间。 ORM-lite 通过使用其毫秒数将 Joda DateTime 存储在数据库中。 Joda DateTime.getMillis() 返回 UTC 毫秒数。
几天后,我们将从夏令时切换为正常时间,但我不能 100% 确定我的应用是否能正确处理此问题。
为了测试它,我尝试禁用设备的“自动日期和时间(使用网络提供的时间)”设置,并将日期更改为具有正常时间的日期。所选时区的文本立即从 GMT +02:00 更改为 GMT+01:00
我预计我的所有时间记录都会提前一小时(这实际上是时间跟踪应用程序的失败),但事实并非如此。 当我将时区设置为例如阿布扎比 GMT +4:00 我所有的时间记录都是两小时后。 这对我来说很有意义,因为这些条目是使用我的默认时区(GMT +02:00)创建的。 为什么我从夏令时切换到正常时间时没有出现这种情况?
干杯, 斯特凡
最佳答案
我想我对事情的运作方式有错误的理解。
示例:
DateTime dtNow = new DateTime(1414479634046);
我认为从正常时间切换到 DST 时“dtNow”会发生变化。我认为夏令时就像一个单独的时区,但事实并非如此。 当 DateTime 从 Millis Joda 中“恢复”时,会查看日期并确定它是正常还是夏令时。
关于java - Joda 日期时间 DateTimeZone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26410962/