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

Gson解析java.sql.Timestamp日期不符问题求助

问题原因与解决方法

核心问题:日期格式符使用错误

你设置的Gson日期格式"YYYY-MM-DD hh:mm:ss"遵循SimpleDateFormat规则,但几个符号用错导致解析逻辑偏离预期:

  • YYYY:代表周年(Week Year),不是常规公历年。周年以周为单位划分,2022年部分日期可能被归到2021的周年区间内。
  • DD:代表一年中的第几天,不是月份中的日期。你传入的05会被解析为一年的第5天,结合周年规则最终得到错误的2021-12-26。
  • hh:代表12小时制小时,缺少AM/PM标记时,12:00会被默认解析为凌晨00:00,这也是时间部分显示00:00:00.0的原因。

解决方法:修正日期格式字符串

将GsonBuilder的日期格式改为标准格式"yyyy-MM-dd HH:mm:ss",对应规则:

  • yyyy:常规公历年
  • MM:两位数字的月份
  • dd:两位数字的月内日期
  • HH:24小时制的小时

修正后的代码示例:

Gson gson = new GsonBuilder()
    .setDateFormat("yyyy-MM-dd HH:mm:ss")
    .create();

额外排查点

  1. 验证参数传递:在后端接收请求的位置,先打印原始createTimestamp参数值,确认是否为传入的"2022-05-05 12:00:00",排除参数传递过程中被篡改的可能。
  2. 确认字段类型:检查DietDiary2类中的createTimestamp字段确实是java.sql.Timestamp类型,避免因类型不匹配导致解析异常。

内容的提问来源于stack exchange,提问作者黃奕捷

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 21:35:05