我正在使用JodaTime for Android (链接),并试图在两个日期之间计算Period。
一个日期来自具有Europe/London时区的服务器,另一个日期是我创建的日期,如:
DateTimeZone dateTimeZone = DateTimeZone.forTimeZone(TimeZone.getTimeZone("Europe/London"));
DateTime now = DateTime.now(dateTimeZone);我想要的是从now到从服务器获得的日期之间的。
我正在创建这样一个新的Period实例:
Period period = new Period(serverDateTime, now, PeriodType.yearMonthDayTime());但是我每次得到的结果都有两个小时的偏移。
如果我打印serverDateTime:2017-02-04T14:30:00.000+02:00和now:2017-02-04T14:30:13.862Z
对于这些值,我得到一个period.getHours() == 2。
我该换什么?这两次似乎都是正确的,但在某个地方有一个错误
发布于 2017-02-04 14:57:05
因此,我创建了从服务器(作为字符串获得的)时间,如下所示:
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);https://stackoverflow.com/questions/42041644
复制相似问题