Joda-Time - 创建LocalDateTime的新实例会返回不正确的当前时间

时间:2015-04-08 23:52:19

标签: android jodatime

当我创建LocalDateTime的新实例并尝试获取当前小时时,它正好关闭了4个小时。

例如我的代码如下:

LocalDateTime mReminderTime = new LocalDateTime();
int mHourOfDay = mReminderTime.getHourOfDay();

手机/平板电脑的系统时间为19:00,mHourOfDay为23:00。我一直在物理设备上测试这些。

我也尝试了以下代码并得到了相同的结果:

LocalDateTime mReminderTime = LocalDateTime.now();
int mHourOfDay = mReminderTime.getHourOfDay();

我的时区是EST,即GMT的-4:00。我相信这正是问题所在。 LocalDateTime在格林威治标准时间0:00实例化,导致mHourOfDay比系统时间提前4小时。

我的问题:如何通过检测设备的当前时区让LocalDateTime在EST初始化?如果用户更改时区,我不想将LocalDateTime设置为专门使用-4:00 GMT。现在我有一个使用Calendar的解决方案,如下所示:

Calendar cal = Calendar.getInstance();
mReminderTime = new LocalDateTime(cal);

我希望完全依赖Joda-Time,因此我想要一个避免Calendar的解决方案。如果有帮助,我使用这个库将Joda-Time导入我的项目:https://github.com/dlew/joda-time-android

0 个答案:

没有答案