标签:
<field name="tdate_field"type="tdate"indexed="true"stored="true"/> <field name="date_field"type="date"indexed="true"stored="true"/> <fieldType name="date"class="solr.TrieDateField"precisionStep="0"positionIncrementGap="0"/ <!-- A Trie based date field for faster date range queries and date faceting. --> <fieldType name="tdate"class="solr.TrieDateField"precisionStep="6"positionIncrementGap="0"/>在solr的web界面上进行query操作时,返回xml与json的时间结果总是相差8小时。但是sorj返回的得到的java.util.Date数据值又是正确的,没有相差8小时。
public static TimeZone UTC = TimeZone. getTimeZone("UTC");发现默认的时区是UTC。可见solr存的时间值是对的,只不过显示的时间是以"UTC"零时区的时间显示,所以返回给Date数据也是正确的。
Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd‘T‘HH:mm:ss‘Z‘"); String queryTime = QueryRule.ONLINE_TIME +":["+sdf.format(date )+"TO"+"*]"; query.setQuery(queryTime);这样做的话一般采用本机默认时区,自然就有8小时的相差。
Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy -MM-dd‘T‘HH:mm:ss‘Z‘"); sdf.setTimeZone(TimeZone. getTimeZone("UTC")); String queryTime = QueryRule.ONLINE_TIME +":["+sdf.format(date )+"TO"+"*]"; query.setQuery(queryTime);
标签:
原文地址:http://my.oschina.net/u/2249726/blog/424364