我正在使用JodaTime
for Android(link),我正在尝试计算两个日期之间的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:00
和now
:2017-02-04T14:30:13.862Z
对于这些值,我得到period.getHours() == 2
。
我应该改变什么?两次看起来都是正确的,但某处出现了错误
答案 0 :(得分: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);