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);
本地时间,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);
上面的配置与kibana里配置时间选择使用“浏览器”时间是统一的