我的solr中有一个数据:Using the Solr Administration User Interface,modifyTime是“ 2016-04-20T13:58:35.805Z”。
使用solrj:
enter image description here,modifyTime为“ 2016年4月20日星期三CST”。
我正在使用solr6。为什么?
最佳答案
来自Solr Administration用户界面的ModifyTime数据格式为UTC,您可以通过datetime字符串末尾的Z来理解它,指示该日期的字符串表示形式为UTC。
2016-04-20T13:58:35.805Z
另一方面,来自数据格式的ModifyTime是CST –中部标准时间,在您的情况下,这似乎是+ 8小时。
Wed Apr 20 21:58:35 CST 2016
发生这种情况的原因是Java令人讨厌且功能较差,其中java.util.Date没有时区,但是toString方法应用了JVM的当前默认时区。
java.util.Date date = ( java.util.Date ) doc.getFieldValue("modifyTime");
DateTime dateTimeUtc = new DateTime( date, DateTimeZone.UTC );
String output = dateTimeUtc.toString();
编辑
感谢@BasilBourque对CST(时区缩写)含义的建议