【发布时间】:2020-10-20 17:39:12
【问题描述】:
我正在将 SpringBoot 版本从 2.2.2.RELEASE 更新到 2.3.1.RELEASE。突然,我所有 API 响应的所有日期格式都发生了变化(在时区表示部分)。
从+0000 到+00:00
"timestamp": "2020-05-19T05:46:49.469+0000" - 2.2.2.RELEASE
"timestamp": "2020-06-30T09:55:23.014+00:00" - 2.3.1.RELEASE
这是我的简单 POJO:我没有为日期字段添加任何 @JsonFortmat 配置。
@NoArgsConstructor
@AllArgsConstructor
@Getter
public class BuildInfo{
private String message;
private Date timestamp;
}
和我的控制器方法
@GetMapping(value = "/buildinfo", produces = "application/json")
ResponseEntity<BuildInfo> getBuildInfo();
我没有添加任何序列化/反序列化逻辑,我只使用 SpringBoot 的默认行为进行开发。我正在尝试搜索有关此更改的任何发布文档,但找不到任何内容。
以下更改,我可以执行以适应这些更改
-
在每个日期字段中使用带有自定义模式的
@JsonFormat注释(但我不能这样做,因为这是客户端库)@JsonFormat(pattern="yyyy-MM-dd'T'HH:mm:ss.SSSZ") private Date timestamp; -
在应用层注入
Jackson2ObjectMapperBuilderCustomizer。
@Bean
public Jackson2ObjectMapperBuilderCustomizer jsonCustomizer() {
return builder -> builder.simpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
}
但我想缩小格式更改的根本原因?从哪个版本的 Jackson/Spring 库开始?
【问题讨论】:
标签: spring-boot jackson