将数据库中的数据导入elasticsearch 的日期格式化问题

. jackson 库在转换为 json 的时候,将 Date 类型转为为了 long 型的字符串表示。我们使用@JsonFormat 注解改变格式化的结果

1
2
3
4

@Field(type = FieldType.Date, format = DateFormat.custom,pattern = "yyyy-MM-dd")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern ="yyyy-MM-dd",timezone="GMT+8")
private Date time;
  1. 如果是默认的 date_optional_time 的格式
1
2
3
4
5

@Field(type = FieldType.Date, format = DateFormat.date_optional_time)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern ="yyyy-MM-dd'T'HH:mm:ss.SSSZ",timezone="GMT+8")
private Date time

(1)创建文档时指定格式 jackson 库在转换为 json 的时候,将 Date 类型转为为了 long 型的字符串表示。我们使用@JsonFormat 注解改变格式化的结果

@Field(type = FieldType.Date, format = DateFormat.custom,pattern = “yyyy-MM-dd”) @JsonFormat(shape = JsonFormat.Shape.STRING, pattern =“yyyy-MM-dd”,timezone=“GMT+8”) private Date callback_at; 如果是默认的 date_optional_time 的格式

@Field(type = FieldType.Date, format = DateFormat.date_optional_time) @JsonFormat(shape = JsonFormat.Shape.STRING, pattern =“yyyy-MM-dd’T’HH:mm:ss.SSSZ”,timezone=“GMT+8”) private Date callback_at; 如下采用第一种方式:

1
2
3
4
5
6
@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 createTime;
	@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 updateTime;
Licensed under CC BY-NC-SA 4.0
最后更新于 Jan 06, 2025 05:52 UTC
comments powered by Disqus
Built with Hugo
主题 StackJimmy 设计
Caret Up