solr时区设置解决时间多8小时问题

原创 2018-01-18 16:17 阅读(1284)次

今天发现我博客里文章的时间与实际时间差了8小时,正好比原来时间多出8小时,想想应该是时区不一致的问题。

用solr web工具查询出来的数据原样:

"create_time": "2018-01-18T11:22:06Z"

{
        "original": 1,
        "create_time": "2018-01-18T11:22:06Z",
        "id": "18",
        "title": "linux下MySQL5.7.18安装过程",
        "parent_type": 2,
        "type": 7,
        "content": "<p>话说MySQL5.7是之前所有版本都无法比的(好像是废话啊,不然...>",
        "is_show": 0,
        "tags": "mysql,linux",
        "read_count": 3,
        "_version_": 1589915482826211300
      }

而展示的时间却多了8小时:


然后我看了下solr搜索的java代码:

Date create_time =(Date) doc.get("create_time");
有个时间的强转,solr默认是UTC时间格式,而我们的tomcat如果没有设置时区的话会默认为操作系统的,我的是UTC+8,所以这里时间转换时,时间多加上了8小时。所以我们要设置solr与我们操作系统的时区一致。

windows下:

修改bin/solr.cmd文件,找到set SOLR_TIMEZONE=UTC改为set SOLR_TIMEZONE=UTC+8:

IF "%SOLR_TIMEZONE%"=="" set SOLR_TIMEZONE=UTC+8
重启solr,数据重新导入一遍到索引里,就可以了