乔达时间可能的错误结果



我正在使用Android的JodaTime(链接(,我正在尝试计算两个日期之间的Period

一个日期来自具有Europe/London时区的服务器,另一个日期是我创建的日期,如下所示:

DateTimeZone dateTimeZone = DateTimeZone.forTimeZone(TimeZone.getTimeZone("Europe/London"));
DateTime now = DateTime.now(dateTimeZone);

我想要的是获取从现在到从服务器获得的日期之间的Period

我正在创建一个新的Period实例,如下所示:

Period period = new Period(serverDateTime, now, PeriodType.yearMonthDayTime());

但是我每次得到的结果都有 2 小时的偏移量。

如果我打印服务器日期时间:2017-02-04T14:30:00.000+02:00now2017-02-04T14:30:13.862Z

对于这些值,我得到了一个period.getHours() == 2.

我应该更改什么?两次似乎都是正确的,但某处有错误

所以我

从服务器创建时间(我以字符串形式获得(,如下所示:

DateTime serverDateTime = new DateTime(Integer.valueOf(year), Integer.valueOf(month),
            Integer.valueOf(day), Integer.valueOf(hours), Integer.valueOf(minutes));

我所要做的就是添加timezone,所以答案是:

DateTime serverDateTime = new DateTime(Integer.valueOf(year), Integer.valueOf(month),
            Integer.valueOf(day), Integer.valueOf(hours), Integer.valueOf(minutes), dateTimeZone);

相关内容

  • 没有找到相关文章

最新更新