fix: jackson处理LocalDateTime字段格式全局配置

This commit is contained in:
zhangyuanpeng
2025-03-06 17:17:52 +08:00
parent 1919395967
commit e503803944

View File

@@ -5,6 +5,8 @@ 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.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import jakarta.validation.Validation;
import jakarta.validation.Validator;
import jakarta.validation.ValidatorFactory;
@@ -20,6 +22,8 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.math.BigInteger;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.TimeZone;
@@ -33,6 +37,8 @@ import java.util.TimeZone;
@Slf4j
public class WebMvcConfig implements WebMvcConfigurer {
private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
/**
* 配置消息转换器
*
@@ -45,6 +51,10 @@ public class WebMvcConfig implements WebMvcConfigurer {
// 注册 JavaTimeModule替代手动注册 LocalDateTimeSerializer
JavaTimeModule javaTimeModule = new JavaTimeModule();
// 返回指定字符串格式
javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DATE_TIME_FORMATTER));
// 反序列化,接受前端传来的格式
javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DATE_TIME_FORMATTER));
objectMapper.registerModule(javaTimeModule);
// 配置全局日期格式和时区