Elasticsearch处理LocalDateTime时间格式

碰到的问题是使用如下方法去修改已存在的时间,则不管原来的时间格式是什么,新的时间格式都为 yyyy-MM-dd’T’HH:mm:ss.SSS’Z’,当再次获取这个文档时,就报时间解析不了的错误:

	@Autowired
    private ElasticsearchRestTemplate elasticsearchRestTemplate;
    
	@GetMapping("/testEdit")
    public JsonResult<Object> testEdit(String id, TestEs testEs) {
        Document document = Document.create();
        document.put("createTime", testEs.getCreateTime());
        UpdateResponse test_es = elasticsearchRestTemplate.update(UpdateQuery.builder(id).withDocument(document).build(), IndexCoordinates.of("test_es"));
        return JsonHelper.toJson(testEs);
    }

卡了2天找到了算是比较“暴力”的解决办法,将两种的格式都写上去,这样基本上就不存在时间格式解析不了数据的问题了:

	@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 LocalDateTime createTime;

最后附上参考链接:

https://www.cnblogs.com/code-duck/p/13775207.html

如果博友有更好的办法,还请在评论区教教小弟,小弟这厢有礼了!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值