From cc78cb8b2192a844688aad9646b65414fde915c2 Mon Sep 17 00:00:00 2001 From: Theo <971366405@qq.com> Date: Wed, 15 Jan 2025 16:34:21 +0800 Subject: [PATCH] =?UTF-8?q?feat(WebMvcConfig):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=A0=BC=E5=BC=8F=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 LocalDateTime 序列化支持,使用 NORM_DATETIME_PATTERN 格式 - 设置 GMT+8 时区 - 使用 DatePattern.NORM_DATETIME_PATTERN 替代硬编码的日期格式 --- .../java/com/youlai/boot/config/WebMvcConfig.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/youlai/boot/config/WebMvcConfig.java b/src/main/java/com/youlai/boot/config/WebMvcConfig.java index a865c163..ec938575 100644 --- a/src/main/java/com/youlai/boot/config/WebMvcConfig.java +++ b/src/main/java/com/youlai/boot/config/WebMvcConfig.java @@ -1,11 +1,14 @@ package com.youlai.boot.config; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateTime; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; import jakarta.validation.Validation; import jakarta.validation.Validator; import jakarta.validation.ValidatorFactory; @@ -21,6 +24,9 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import java.math.BigInteger; import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; import java.util.List; /** @@ -50,8 +56,12 @@ public class WebMvcConfig implements WebMvcConfigurer { SimpleModule simpleModule = new SimpleModule(); simpleModule.addSerializer(Long.class, ToStringSerializer.instance); simpleModule.addSerializer(BigInteger.class, ToStringSerializer.instance); + simpleModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer( + DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN).withZone(ZoneId.of( "GMT+8")) + )); objectMapper.registerModule(simpleModule); - objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); + objectMapper.setDateFormat(new SimpleDateFormat(DatePattern.NORM_DATETIME_PATTERN)); + jackson2HttpMessageConverter.setObjectMapper(objectMapper); converters.add(1, jackson2HttpMessageConverter);