解决方法及问题:
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;