You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java Spring Boot日期格式化配置代码报错求助

Spring Boot日期格式化配置报错解决方法

报错信息

Cannot resolve symbol 'LocalDateTimeSerializer'
Cannot resolve symbol 'LocalDateTimeSerializer'
'addSerializer(com.fasterxml.jackson.databind.JsonSerializer<?>)' in 'com.fasterxml.jackson.databind.module.SimpleModule' cannot be applied to '(LocalDateTimeSerializer)'

问题原因

  1. 代码使用了LocalDateTimeSerializer但未导入对应类,当前仅导入了反序列化类LocalDateDeserializer,序列化类的包路径和反序列化类不同
  2. 调用JavaTimeModule的addSerializer方法时,使用了无类型参数的重载方法,导致类型匹配失败

解决步骤

  1. 导入LocalDateTimeSerializer类(位于com.fasterxml.jackson.datatype.jsr310.ser包),同时导入java.time.LocalDateTime类
  2. 调用addSerializer时指定要序列化的目标类型LocalDateTime.class,使用带类型参数的重载方法

修正后的完整代码

package com.api.parking_control.configs;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;

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

@Configuration
public class DateConfig {

    public static final String DATETIME_FORMAT = "yyyy-MM-dd'T'HH:mm:ss'Z'";
    public static final LocalDateTimeSerializer LOCAL_DATETIME_SERIALIZER = new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DATETIME_FORMAT));

    @Bean
    @Primary
    public ObjectMapper objectMapper() {
        JavaTimeModule module = new JavaTimeModule();
        module.addSerializer(LocalDateTime.class, LOCAL_DATETIME_SERIALIZER);
        return new ObjectMapper()
                .registerModule(module);
    }
}

扩展:同时配置LocalDate格式化

如果需要对LocalDate也做统一格式化,可以补充以下配置:

// 新增日期格式常量和对应的序列化/反序列化器
public static final String DATE_FORMAT = "yyyy-MM-dd";
public static final LocalDateSerializer LOCAL_DATE_SERIALIZER = new LocalDateSerializer(DateTimeFormatter.ofPattern(DATE_FORMAT));
public static final LocalDateDeserializer LOCAL_DATE_DESERIALIZER = new LocalDateDeserializer(DateTimeFormatter.ofPattern(DATE_FORMAT));

// 在objectMapper方法中添加注册逻辑
module.addSerializer(LocalDate.class, LOCAL_DATE_SERIALIZER);
module.addDeserializer(LocalDate.class, LOCAL_DATE_DESERIALIZER);

内容的提问来源于stack exchange,提问作者Routfin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 15:31:58