首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用solrj得到8小时的时差。

用solrj得到8小时的时差。
EN

Stack Overflow用户
提问于 2016-07-25 09:06:19
回答 1查看 254关注 0票数 0

我的solr: 使用Solr管理用户界面中有一个数据,modifyTime是"2016-04-20T13:58:35.805Z“。

使用solrj: 在这里输入图像描述,modifyTime是"Wed Apr 20 21:58:35 CST 2016“。

我在用solr6。为什么?

EN

回答 1

Stack Overflow用户

发布于 2016-07-26 16:08:24

中国标准时间

阿尔弗雷多的回答是正确的,但有一个假设。这个答案提到了中央标准时间,但该区域落后于UTC (7或6小时),而问题中的数据则领先于UTC。所以我想CST在这里指的是中国标准时间,它比UTC高出8。

这种混淆说明了为什么我们不应该使用这些3-4字母缩写,比如CST。它们不是真正的时区,也不是标准化的,甚至不是唯一的(正如我们在这里看到的)。相反,请以适当的tz/IANA时区的形式使用continent/region

java.time

问题是使用旧的日期-时间类。这些设计拙劣且令人出了名的麻烦类已经被Java8和更高版本的java.time框架所取代。

该字符串应由Instant直接解析,以获得UTC中的值。

代码语言:javascript
复制
Instant instant = Instant.parse( "2016-04-20T13:58:35.805Z" );

调用toString获取相同类型的字符串,按照ISO 8601标准格式化。

应用时区通过特定区域的挂钟时间镜头查看同一时刻。应用ZoneId获取ZonedDateTime对象。

America/Montreal为例,挂钟时间比UTC晚4小时,所以时间是09而不是13

代码语言:javascript
复制
ZoneId zoneId = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = instant.atZone( zoneId );

2016-04-20T09:58:35.805-04:00美国/蒙特利尔

InstantZonedDateTime都表示时间线上相同的同时点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38563653

复制
相关文章

相似问题

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