Java中ISO_LOCAL_DATE_TIME对应Elasticsearch的日期格式是什么?
正确的Elasticsearch日期格式配置
你需要将Elasticsearch中action_time字段的格式修改为匹配Java DateTimeFormatter.ISO_LOCAL_DATE_TIME的输出格式,有两种可行方式:
方式一:精确匹配自定义格式
使用和输出完全对应的格式字符串,注意几个关键修正点:
- 用
'T'匹配日期与时间之间的分隔符 - 用
HH表示24小时制时间(你的示例是16点,12小时制的hh会解析错误) - 用
SSS表示毫秒部分(之前的sss是错误写法,ss对应秒,SSS才是毫秒)
对应的配置代码:
"action_time": { "type": "date", "format": "yyyy-MM-dd'T'HH:mm:ss.SSS" }
方式二:使用Elasticsearch内置格式
Elasticsearch预定义了date_time格式,天然支持这种带毫秒的ISO 8601格式,直接使用更简洁:
"action_time": { "type": "date", "format": "date_time" }
以上两种配置都能正确解析你给出的示例日期2022-08-04T16:29:09.866。
内容的提问来源于stack exchange,提问作者mahfuj asif
相关产品推荐
相关产品推荐

