0

我正在使用JodaTimeAndroid (链接),我正在尝试计算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 小时的偏移量。

如果我打印 serverDateTime :2017-02-04T14:30:00.000+02:00now:2017-02-04T14:30:13.862Z

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

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

4

1 回答 1

0

所以我从服务器(我得到一个字符串)创建时间,比如:

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);
于 2017-02-04T14:57:05.147 回答