我正在使用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:00
和now
: 2017-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);