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

使用Gson将JSON转POJO时丢失时间戳的问题求助

Gson解析java.util.Date丢失时间戳的问题原因与修复方案

问题原因

你的Gson日期格式配置"yyyy-MM-dd'T'HH:mm:ss.S'Z'"强制要求日期字符串包含毫秒段(.S),但JSON中的目标日期"2021-12-01T07:16:31Z"并没有毫秒部分,格式不匹配导致Gson解析时仅识别了日期部分,丢弃了时分秒信息。

修复方案

有两种可行的调整方式:

  • 兼容有无毫秒的通用格式:使用方括号标记可选的毫秒段,这样既可以解析带毫秒的日期,也能处理不带毫秒的场景:
    Gson gson = new GsonBuilder()
        .setDateFormat("yyyy-MM-dd'T'HH:mm:ss[.S]'Z'")
        .create();
    
  • 匹配目标日期的精确格式:如果确定所有待解析的日期都不带毫秒,直接去掉格式中的.S部分:
    Gson gson = new GsonBuilder()
        .setDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")
        .create();
    

补充说明

java.util.Date对象本身是存储完整时间戳的,问题本质是格式字符串与输入日期不匹配导致解析不完整,调整格式后即可正确读取包含时分秒的完整时间信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 16:15:40