es查询时间long转date_ES系列之一文带你避开日期类型存在的坑

概述

时间相关的字段是ElasticsSearch(以下简称ES)最常用的字段了,几乎所有的索引应用场景都会有时间字段,一般用于基于时间范围的搜索,聚合等场景。但是由于时区的问题,相信很多小伙伴都踩到过时间字段的坑,笔者自己就踩过。

本文希望给你提供一个避坑指南。

了解时区的基本概念

因为本文不是专门讲时区的,你只需要了解一些基本的概念就可以了。

我们知道全球分为24个时区,包含23个整时区及180°经线左右两侧的2个半时区。东经的时间比西经要早,也就是如果格林威治时间是中午12时,则中央经线15°E的时区为下午1时。比如北京位于东8区,所以北京时间应该是晚上8点。

格林威治标准时间GMT或者UTC

GMT和UTC可以认为是一个东西,只是精度的差异。他们代表的是全球的一个时间参考点,全球都以格林威治的时间作为标准来设定时间。

在程序中我们经常能见到这样的字符串:

Thu Oct 16 07:13:48 GMT 2019

这说明这个时间是GMT时间。

CST中国标准时间

China Standard Time,是中国的标准时间。CST = GMT(UTC) + 8。比如

Thu Aug 25 17:15:49 CST 2019

表示的就是CST时间。有时候我们也能见到类似下面这样的表示:

2020-03-15T11:45:43Z

其中Z表示的就是UTC时间。

坑一,日期字段映射问题

我们知道ES有个Dynamic Mapping的机制,当索引

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值