我的solr: 使用Solr管理用户界面中有一个数据,modifyTime是"2016-04-20T13:58:35.805Z“。
使用solrj: 在这里输入图像描述,modifyTime是"Wed Apr 20 21:58:35 CST 2016“。
我在用solr6。为什么?
发布于 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 instant = Instant.parse( "2016-04-20T13:58:35.805Z" );调用toString获取相同类型的字符串,按照ISO 8601标准格式化。
应用时区通过特定区域的挂钟时间镜头查看同一时刻。应用ZoneId获取ZonedDateTime对象。
以America/Montreal为例,挂钟时间比UTC晚4小时,所以时间是09而不是13。
ZoneId zoneId = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = instant.atZone( zoneId );2016-04-20T09:58:35.805-04:00美国/蒙特利尔
Instant和ZonedDateTime都表示时间线上相同的同时点。
https://stackoverflow.com/questions/38563653
复制相似问题