Spring Boot默认使用JackJson作为json转换器,用于生成JSON格式数据,有时候它格式化的日期/日期时间(LocalDate/LocalDateTime)字段并不符合产品的需求,因此需要对它返回的json中的日期和日期时间类型的字段做自定义格式处理。
1、在字段上使用@JsonFormat
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate birthday; // 生日
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime; // 系统写入时间
这种方式很灵活,但是由于我使用了MyBatis Generator自动生成数据层代码,不能修改自动生成的Model类,因为随时有可能会删除掉这份MyBatis Generator生成的数据层代码,然后重新再生成一份。
2、在application.properties 统一配置
(1)处理非Java 8的日期类型
非Java 8的日期和日期时间类型,可以在application.properties做如下配置,全局范围控制日期时间的格式化
spring.jackson.time-zone=GMT+8
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
#spring.jackson.serialization.write-date