solr date时间差8小时解决办法

原创 2013年12月03日 12:05:31
solr因为时区设置问题,导致正常入索引后的date类型的时间会减少8小时,跟多初学者会为此苦恼,今天我把个人解决的方案给大家说一下,希望能帮助到大家.
 
方案一:
对date类型的时间字段, 如果可以的话,可以将solr的时间field的类型改为string类型,这样也就不存在时差的问题了,这个方案是可行的.
 
方案二:
既然知道solr入索引时,时间类型的字段会减少8小时,那么我们为何不将入索引前的时间先手动添加8小时后,再添加入索引操作,这也就一种解决办法,我来分析几种情况,希望对大家有帮助:
 
(1) 一般数据都是从数据库里面获取,通过sql形式读取数据,然后再入索引,部分人可能会根据方案二将结果取出来,然后再自己将时间处理为加8小时,然后再入索引,其实不必自己去写,因为sql本身都提供了一些可以在sql语句中直接使用的函数,比如Mysql, mysql提供了date_add(pubdate, interval +8 hour)这样一个函数,pubdate是你要查询的date类型的字段名称,后面的+8表示读取数据库时间之后再加8小时,这样,时间就变为我们想要的时间了(其他数据库也提供了类似的函数,大家自己去查一下就可以解决).
 
(2) 对非数据库来源的数据,通过java提供的时间操作类,也是很容易处理的,这里只是简单提一下,使用Calendar即可,细节在此就不多说了.
 
除了以上两种方式大家如果有什么更好的建议,期待大家留言.

solr和java时区时间日期转化方法

我们一般得到的时间为当地时区的时间,而我存储到服务器上时想得到格林威治时间(GMT)和世界协调时间(UTC)。一种是通过时间差计算:目标时区时间+时区差=本时区的时间。另一种则是通过设置时区不过要调用...
  • u012142423
  • u012142423
  • 2014年08月06日 23:26
  • 2232

在MongoVUE中发现插入的时间和实际的时间相差8小时?

在Mongodb使用过程中,发现一个问题,就是我们插入Date类型时会发现保存到mongodb中的数据却晚了8个小时,这是为什么呢?我想大家在使用客户端工具如MongoVUE时,也会发现查询出来的数据...
  • andamajing
  • andamajing
  • 2016年07月02日 11:06
  • 9041

solr5.5.2 在windows下设置默认时区

网上一搜设置时区全是修改配置:solr_home/bin/solr.in.sh。但是我是在windows下使用所以这个配置文件怎么改都无效。(我是通过修改8983测试出来的) 正确的配置文件是solr...
  • KanShiMeKan
  • KanShiMeKan
  • 2016年07月08日 17:15
  • 1183

java计算时间差及比较时间

比如:现在是2004-03-26 13:31:40 过去是:2004-01-02 11:30:24 我现在要获得两个日期差,差的形式为:XX天XX小时XX分XX秒 方法一: Da...
  • u011257574
  • u011257574
  • 2015年04月27日 11:05
  • 4523

logstash 防止实际处理时间跟事件产生时间略有偏差

"message" => " 10.168.255.134 [12/Sep/2016:16:30:40 +0800] \"GET /resources/plugins/artDialog/dialog...
  • zhaoyangjian724
  • zhaoyangjian724
  • 2016年09月12日 22:28
  • 1029

ECSHOP时间戳转换差8小时解决方案

ecshop直接保存日期然后通过date()将时间戳转时年月日,会存在一个8小时误差问题,后台有设置时间,正常不二次开发时间显示都经过处理,不会出问题. 由于自己写了PHP代码需要调用日期,直接读取...
  • swill1021
  • swill1021
  • 2016年05月16日 14:19
  • 1458

iOS NSDateFormatter 转换 出现 8小时偏差

NSString * str = @"2015-08-03 12:00:00"; NSDateFormatter * dateFormatter = [[NSDateFormatter all...
  • woaiyouxi0803
  • woaiyouxi0803
  • 2016年03月14日 16:20
  • 563

PHP的date()获得当前时间 少8个小时的解决方法

PHP的date()获得当前时间 少8个小时的解决 摘要:PHP的date()获得的当前时间和实际的本地时间不一致的,和北京时间正好差8个小时的解决方法。 难度:20 初学PHP想获...
  • zunguitiancheng
  • zunguitiancheng
  • 2014年04月10日 11:59
  • 1741

ElasticSearch里面关于日期的存储方式

在ElasticSearch里面最常用的就是时间字段了,经常会在群里看到一些小伙伴提出有关时间的问题,为什么es查询的时间跟我实际看到的时间差8个小时呢。如果我们了解了ElasticSearch底层的...
  • u010454030
  • u010454030
  • 2017年04月01日 13:59
  • 3323

NSDate 8小时问题

NSDate 8小时问题
  • huangyongf
  • huangyongf
  • 2016年08月26日 11:49
  • 801
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:solr date时间差8小时解决办法
举报原因:
原因补充:

(最多只允许输入30个字)