java - Joda 日期时间 DateTimeZone

标签 java android timezone jodatime dst

+我有一个时间跟踪应用程序,它使用 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/

相关文章:

java - 从另一个类导入int变量会使应用程序崩溃

java - Z3 求解器 Java API : Unexpected behaviour

android - 使用 Android Jelly Bean 的 Nexus 7 内存消耗非常高

azure - Azure 中依赖英国夏令时的应用程序出现问题

javascript - 选定日期的开始日期和结束日期

java - java反序列化时如何动态创建序列化类的对象而不调用构造函数?

java - Python 中的无限循环

android - 适用于 iOS 和 Android 应用程序的服务器端数据库

java - lib 的内容如何最终出现在 Android *.apk 文件中?

java - 为什么 SimpleDateFormat setTimeZone 不会因无效时区而引发错误