elasticsearch
建立index
的以后,能够设置mapping
。
若是mapping
中没有设置date的format,那么默认为两种格式strict_date_optional_time||epoch_millis
,其中新版strict_date_optional_time
移除了前缀strict_
。html
date_optional_time
此格式为ISO8601标准 示例:2018-08-31T14:56:18.000+08:00
epoch_millis
也就是时间戳 示例1515150699465, 1515150699
以上2中是默认的,其余的格式参考官方文档-formatjava
进入默认的格式化格式是以上两种,那么只用传入对应的格式便可,想使用哪一种格式的时间,就先设置对应field
的format。spring
设置格式json
PUT my_index { "mappings": { "_doc": { "properties": { "date": { "type": "date", "format": "yyyy-MM-dd" } } } } }
转换java类的属性springboot
jackson
库在转换为json
的时候,将Date
类型转为为了long
型的字符串表示。咱们使用@JsonFormat
注解改变格式化的结果app
@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
的格式elasticsearch
@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;
其余格式触类旁通便可ide