elasticsearch 时间格式
elasticsearch创建index的之后,可以设置mapping。
如果mapping中没有设置date的format,那么默认为两种格式strict_date_optional_time||epoch_millis ,其中新版strict_date_optional_time移除了前缀strict_。
-
date_optional_time此格式为ISO8601标准 示例:2018-08-31T14:56:18.000+08:00 -
epoch_millis也就是时间戳 示例1515150699465, 1515150699
以上2中是默认的,其他的格式参考官方文档-format
数据插入
进入默认的格式化格式是以上两种,那么只用传入对应的格式即可,想使用哪种格式的时间,就先设置对应field的format。
-
设置格式
PUT my_index { "mappings": { "_doc": { "properties": { "date": { "type": "date", "format": "yyyy-MM-dd" } } } } } -
转换java类的属性
jackson库在转换为json的时候,将Date类型转为为了long型的字符串表示。我们使用@JsonFormat注解改变格式化的结果@Field(type = FieldType.Date, format = DateFormat.custom,pattern = "yyyy-MM-dd") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern ="yyyy-MM-dd",timezone="GMT+8") private Date callback_at;如果是默认的
date_optional_time的格式@Field(type = FieldType.Date, format = DateFormat.date_optional_time) @JsonFormat(shape = JsonFormat.Shape.STRING, pattern ="yyyy-MM-dd'T'HH:mm:ss.SSSZ",timezone="GMT+8") private Date callback_at;
其他格式举一反三即可
Elasticsearch日期格式配置
本文介绍了Elasticsearch中日期字段的默认格式及其配置方法,包括如何通过设置mapping指定特定的日期格式,以及如何在Java类中使用@JsonFormat注解来调整日期的序列化格式。
668

被折叠的 条评论
为什么被折叠?



