news 2026/3/25 3:23:02

Spring Boot全局日期格式配置方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring Boot全局日期格式配置方法
spring boot中,不想每个实体类中都这样设置,有什么方法: @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime createTime;

在Spring Boot中有几种方法可以避免在每个实体类中重复设置@JsonFormat注解:

方法一:全局配置(推荐)

application.ymlapplication.properties中配置全局的日期格式:

YAML配置:

yaml

spring: jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 serialization: write-dates-as-timestamps: false

Properties配置:

properties

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss spring.jackson.time-zone=GMT+8 spring.jackson.serialization.write-dates-as-timestamps=false

方法二:自定义Jackson配置类

java

@Configuration public class JacksonConfig { @Bean @Primary public Jackson2ObjectMapperBuilderCustomizer jacksonCustomizer() { return builder -> { // 设置全局日期格式 builder.simpleDateFormat("yyyy-MM-dd HH:mm:ss"); builder.timeZone(TimeZone.getTimeZone("GMT+8")); // 针对Java 8时间API的配置 builder.serializers(new LocalDateTimeSerializer( DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); builder.deserializers(new LocalDateTimeDeserializer( DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); // 如果需要,也可以配置LocalDate等其他类型 builder.serializers(new LocalDateSerializer( DateTimeFormatter.ofPattern("yyyy-MM-dd"))); builder.deserializers(new LocalDateDeserializer( DateTimeFormatter.ofPattern("yyyy-MM-dd"))); }; } }

方法三:更详细的配置类

java

@Configuration public class JacksonConfig { @Bean @Primary public ObjectMapper objectMapper() { ObjectMapper objectMapper = new ObjectMapper(); // 设置Java 8时间模块 JavaTimeModule javaTimeModule = new JavaTimeModule(); // LocalDateTime序列化和反序列化 javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); // LocalDate序列化和反序列化 javaTimeModule.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); javaTimeModule.addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); objectMapper.registerModule(javaTimeModule); objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); objectMapper.setTimeZone(TimeZone.getTimeZone("GMT+8")); return objectMapper; } }

方法四:使用Mixin(为特定类型统一配置)

java

@JsonDeserialize(using = LocalDateTimeDeserializer.class) @JsonSerialize(using = LocalDateTimeSerializer.class) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") abstract class LocalDateTimeMixin { } @Configuration public class JacksonConfig { @Bean public Jackson2ObjectMapperBuilderCustomizer addCustomSerialization() { return builder -> { builder.mixIn(LocalDateTime.class, LocalDateTimeMixin.class); }; } }

方法五:自定义注解(如果需要不同格式)

java

@Retention(RetentionPolicy.RUNTIME) @JacksonAnnotationsInside @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") public @interface DefaultDateTimeFormat { } // 使用方式 @DefaultDateTimeFormat private LocalDateTime createTime;

推荐方案

建议使用方法一(全局配置),最简单直接,能满足大部分场景。

如果项目中有多种不同的日期格式需求,可以:

  1. 使用方法一设置默认格式

  2. 对于特殊格式的字段,使用@JsonFormat覆盖全局配置

java

// 全局使用 yyyy-MM-dd HH:mm:ss // 特殊字段使用其他格式 @JsonFormat(pattern = "yyyy/MM/dd") private LocalDate specialDate;

这样既能减少重复代码,又能保持灵活性。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/22 7:24:02

20251219给飞凌OK3588-C开发板适配Rockchip原厂的Buildroot【linux-6.1】系统时解决编译ov5645的驱动的时候出现goto free_entity错误: 标号‘f

20251219给飞凌OK3588-C开发板适配Rockchip原厂的Buildroot【linux-6.1】系统时解决编译ov5645的驱动的时候出现goto free_entity错误: 标号‘free_entity’使用前未定义 2025/12/19 14:06缘起:给飞凌OK3588-C开发板适配Rockchip原厂的Buildroot【linux-…

作者头像 李华
网站建设 2026/3/23 12:58:20

3步解锁影院级画质:MPV播放器终极调校指南

你是否在深夜观影时被泛白的HDR画面破坏了沉浸感?或者作为一个色彩强迫症患者,总感觉视频色彩不够精准?今天我们将通过工具对比、实操演示和性能评测三个维度,带你重新认识MPV播放器的色彩管理能力。 【免费下载链接】mpv &#x…

作者头像 李华
网站建设 2026/3/20 22:07:40

通达信liu彩神龙指标 源码

{}变量00:5;变量01:30; A02:(WINNER((CLOSE * 1.100)) * 100.000); A03:(WINNER((CLOSE * 0.9)) * 100.000); A04:MA(A03,变量00); {} STICKLINE( 1.000,0,A04, 7.450,0),colorred; 获利:MA(A03,变量00),colorred; A06:( 100.000 - MA(A02,变量00)); STICKLINE( 1.000, 100.000…

作者头像 李华
网站建设 2026/3/14 8:26:25

FaceFusion在美妆产品测评中的素人形象批量创建

FaceFusion在美妆产品测评中的素人形象批量创建 在美妆内容竞争日益激烈的今天,一个新品口红的推广能否成功,往往不取决于配方多先进,而在于它能不能“被看见”——更准确地说,是能否以足够多样的面孔、足够真实的效果&#xff0c…

作者头像 李华
网站建设 2026/3/23 4:20:59

Open-AutoGLM连接不上手机?立即检查这5项配置,99%问题可快速解决

第一章:Open-AutoGLM 手机连接失败网络配置当使用 Open-AutoGLM 框架进行移动端集成时,手机设备无法建立有效网络连接是常见问题。此类故障通常源于本地服务未正确暴露、防火墙策略限制或移动设备与开发主机之间的网络环境隔离。检查本地服务绑定地址 确…

作者头像 李华
网站建设 2026/3/23 13:18:46

Open-AutoGLM识别精度上不去?一文看懂图像预处理关键参数配置

第一章:Open-AutoGLM 屏幕识别不准调试方法在使用 Open-AutoGLM 进行自动化任务时,屏幕识别不准确是常见问题之一,通常由图像分辨率、元素匹配阈值或环境干扰引起。为提升识别精度,需系统性地排查并调整相关参数。检查图像采集质量…

作者头像 李华