ElasticSearch Date时区问题

探讨了在使用Elasticsearch时遇到的时区问题,特别是当数据未包含时区信息时,Kibana会根据本地时间显示,导致时间显示错误。文章提供了最佳实践方案,即在提交日期数据时直接包含时区信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时间中时区的几个名词: 

  1. GMT:格林威治标准时间 
  2. UTC:世界协调时间 
  3. DST:夏日节约时间 
  4. CST:中国标准时间 

问题来源

存入时间

数据库实际存储时间

     2017-06-21 10:09:51(一致)

kibana查看时间

     2017-06-21  18:09:51(晚8小时)

 

问题解决

      如果在写入数据时不加时区信息,ElasticSearch默认按UTC时区写入,默认是0时区,但是当我们查看的时候,kibana会读取我们当地的时间,即东八区,进行转换,所以我们看到的时间会晚8小时。

      所以最佳实践方案就是:我们在往es提交日期数据的时候,直接提交带有时区信息的日期字符串,如:“2016-07-15T12:58:17.136+0800”。

"insertTime": {
        "type": "date"
      }

      经过测试,如果通过kibana写入数据,然后读取,不会出现这个问题。

     通过logstash/后台写入才会出现时区问题。解决方案是在写入前 +8 或者 指定时区。

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值