es~日期类型需要注意的

es的Date类型支持的格式是有限的,默认是一个时间戳,可读性不是很好,需要解析之后才能使用,而它默认支持的格式只有如下几种,如果你在java里格式化的字符串不属于以下几种,将会出错。

UTC时间

  //kibana里索引字段
  @Field(type = FieldType.Date, format = DateFormat.custom, pattern ="yyyy-MM-ddTHH:mm:ss.SSSZ")// 指定存储格式
  @JsonFormat(pattern ="yyyy-MM-dd HH:mm:ss", timezone ="GMT+8")// 数据格式转换,并加上8小时进行存储
  private String timestamp;

 esPathHandlerEntity.setTimestamp(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").format(new Date()));
 esPathHandlerRepository.save(esPathHandlerEntity);

es~日期类型需要注意的

本地时间,kibana里索引需要这样做

  //kibana里索引字段
  @Field(type = FieldType.Date, format = DateFormat.custom, pattern ="yyyy-MM-ddTHH:mm:ss+0800")// 指定存储格式
  @JsonFormat(pattern ="yyyy-MM-dd HH:mm:ss", timezone ="GMT+8")// 数据格式转换,并加上8小时进行存储
  esPathHandlerEntity.setTimestamp(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss+0800").format(new Date()));
  esPathHandlerRepository.save(esPathHandlerEntity);

es~日期类型需要注意的

上面的配置与kibana里配置时间选择使用“浏览器”时间是统一的

es~日期类型需要注意的
es~日期类型需要注意的

上一篇:【架构师面试-搜索-3】-ElasticSearch集群启动过程


下一篇:java关键字synchronized