LocalDateTime spring 配置

 

package com.nvx.ai.config;

import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

/**
 * 全局 Jackson 配置:将所有 {@link LocalDateTime} 字段统一序列化为 / 反序列化为
 * {@code yyyy-MM-dd HH:mm:ss}(空格分隔、不带时区、北京时间原样输出)。
 *
 * <p>说明:{@code spring.jackson.date-format} / {@code time-zone} 只对老式的
 * {@code java.util.Date} / {@code Calendar} 生效,对 JSR-310 的 {@code LocalDateTime}
 * 不生效,因此这里改用 {@code JavaTimeModule} 的自定义序列化/反序列化器覆盖默认行为。</p>
 */
@Configuration
public class JacksonConfig {

    private static final DateTimeFormatter FMT =
            DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

    @Bean
    public Jackson2ObjectMapperBuilderCustomizer localDateTimeFormatCustomizer() {
        return builder -> {
            builder.serializerByType(LocalDateTime.class, new LocalDateTimeSerializer(FMT));
            builder.deserializerByType(LocalDateTime.class, new LocalDateTimeDeserializer(FMT));
        };
    }
}

 

posted @ 2026-08-27 14:50  tonggc1668  阅读(2)  评论(0)    收藏  举报