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

如何使用Jackson反序列化格式为2023-01-13T08:54:25.83-03:00的LocalDateTime?

解决Jackson注解反序列化带毫秒与时区的LocalDateTime问题

你的当前注解@JsonFormat(pattern = "yyyy-MM-dd'T'hh:mm:ss")缺少毫秒和时区偏移的匹配规则,无法处理2023-01-13T08:54:25.83-03:00格式的时间字符串,以下是修正方案:

正确的注解配置

@JsonProperty("created_at")
@JsonFormat(
    pattern = "yyyy-MM-dd'T'HH:mm:ss.SSXXX",
    shape = JsonFormat.Shape.STRING
)
private LocalDateTime createdAt;

配置细节说明

  • pattern各部分对应格式:
    • yyyy-MM-dd:匹配日期部分
    • 'T':原样匹配时间分隔符
    • HH:24小时制小时(原格式的08为24小时制,若用hh会导致12小时制解析错误)
    • mm:ss:匹配分秒
    • .SS:匹配两位毫秒(对应原格式的.83)
    • XXX:匹配时区偏移格式(对应原格式的-03:00)
  • 必须确保项目引入jackson-datatype-jsr310依赖,Jackson才能支持Java 8的LocalDateTime类型:
    Maven依赖示例:
    <dependency>
        <groupId>com.fasterxml.jackson.datatype</groupId>
        <artifactId>jackson-datatype-jsr310</artifactId>
        <version>你的Jackson版本号</version>
    </dependency>
    
    Gradle依赖示例:
    implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:你的Jackson版本号'
    

额外处理建议

如果反序列化仍报错,可在ObjectMapper中主动注册JavaTimeModule:

ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JavaTimeModule());
mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 23:31:46