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

@DateTimeFormat注解在Gson反序列化时为何失效?

为什么@DateTimeFormat注解在Gson反序列化时失效?
  • 注解所属框架不匹配:@DateTimeFormat是Spring框架提供的注解,仅用于Spring生态中的日期参数绑定场景(比如Spring MVC接收请求参数、表单数据解析等),Gson作为独立的JSON序列化/反序列化库,根本不识别这个注解,自然不会遵循它指定的格式规则。

  • Gson默认的日期处理逻辑:Gson对Date类型的反序列化有自己的内置逻辑,它能自动解析ISO 8601格式的日期字符串(即你JSON中的"2022-10-25T10:38:32.000+01:00"),解析后得到的Date对象本质是一个时间戳。你看到的"Tue Oct 25 15:08:32 IST 2022"只是Date对象调用toString()方法的默认输出格式,和@DateTimeFormat指定的pattern完全无关——因为Gson从未读取过这个注解的配置。

如果需要让Gson按照指定格式处理日期,不需要依赖Spring的注解,直接配置Gson的日期格式即可:

// 创建带日期格式配置的Gson实例
Gson gson = new GsonBuilder()
    .setDateFormat("yyyy-MM-dd HH:mm:ss")
    .create();
Root root = gson.fromJson(fileContent, Root.class);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 14:40:32