最省事的是改配置文件,全局生效,不用逐个字段加注解。
spring.jackson.date-format 定格式,time-zone 定时区。
注意 LocalDateTime 不吃这个配置,要另注册序列化模块。
时间戳和 Date 建议统一成 ISO-8601,前后端都不用再猜时区。
# application.yml:全局统一,无需逐字段加 @JsonFormat
spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
serialization:
write-dates-as-timestamps: false # 输出字符串而不是时间戳
// LocalDateTime 不受 date-format 影响,用定制器注册 JavaTimeModule
@Bean
public Jackson2ObjectMapperBuilderCustomizer jsonCustomizer() {
return b -> {
b.simpleDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
b.serializers(new LocalDateTimeSerializer(
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
b.serializers(new LocalDateSerializer(DateTimeFormatter.ISO_LOCAL_DATE));
};
}
# 个别字段要特殊格式时再局部覆盖
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private LocalDate birthDate;
THE END






暂无评论内容