Elasticsearch Date类型,时间存储相关说明
本文介绍了在SpringBoot中处理Elasticsearch中日期时间格式的问题。当时间输出为UTC格式并存在时区差异时,可通过设置字段格式如'yyyy-MM-dd HH:mm:ss'并指定时区为'GMT+8'来解决。存储Date类型数据时,可以使用JSON库如json-lib, fastjson, Jackson或gson进行转换,存储和读取时保持格式一致。
摘要由CSDN通过智能技术生成
解决方法及问题:
1.时间输出格式,如果是默认 UTC 格式,时间不是我们常用的格式,而且时区问题,少了8个小时。
解决方案:
直接用毫秒值,缺点为不直观。
直接设置format为你想要的格式,比如“yyyy-MM-dd HH:mm:ss” 然后存储的时候,指定格式,并且 Mapping 也是指定相同的format。
2.存储Date,和取出来也是Dete?
解决方案:
存储的时候利用各种JSON对象,比如 json-lib , fastjson , Jackson , gson 等等。存储的时候就可以用JSON Format一下再存储,然后取出来后,在用JSON.toBean(json,POJO.class) ,就解决了,这里利用的是相同 JSON 包转成 JSON ,然后又toBean 回来,是没问题的,然后 Elasticsearch 也支持存储 JSON 。
上述内容转载地址
springboot
实体类字段
@Field( type = FieldType.Date,
format = DateFormat.custom,pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat (shape = JsonFormat.Shape.STRING, pattern ="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
private Date createTcime;
Elasticsearch Date类型,时间存储相关说明_elasticsearch date pattern-CSDN博客