solr时区设置解决时间多8小时问题
原创 2018-01-18 16:17 阅读(2887)次
今天发现我博客里文章的时间与实际时间差了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,数据重新导入一遍到索引里,就可以了