首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JodaTime可能产生的错误结果

问JodaTime可能产生的错误结果
EN

Stack Overflow用户
提问于 2017-02-04 14:42:52
回答 1查看 42关注 0票数 0

我正在使用JodaTime for Android (链接),并试图在两个日期之间计算Period。

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

代码语言:javascript
复制
DateTimeZone dateTimeZone = DateTimeZone.forTimeZone(TimeZone.getTimeZone("Europe/London"));
DateTime now = DateTime.now(dateTimeZone);

我想要的是从now到从服务器获得的日期之间的。

我正在创建这样一个新的Period实例:

代码语言:javascript
复制
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。

我该换什么?这两次似乎都是正确的,但在某个地方有一个错误

EN

回答 1

Stack Overflow用户

发布于 2017-02-04 14:57:05

因此,我创建了从服务器(作为字符串获得的)时间,如下所示:

代码语言:javascript
复制
DateTime serverDateTime = new DateTime(Integer.valueOf(year), Integer.valueOf(month),
            Integer.valueOf(day), Integer.valueOf(hours), Integer.valueOf(minutes));

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

代码语言:javascript
复制
DateTime serverDateTime = new DateTime(Integer.valueOf(year), Integer.valueOf(month),
            Integer.valueOf(day), Integer.valueOf(hours), Integer.valueOf(minutes), dateTimeZone);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42041644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档