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

如何用OpenCSV将ISO 8601格式字符串转为java.sql.Timestamp?

解决ISO 8601转java.sql.Timestamp的@CsvDate格式问题

正确的格式配置

针对你的输入2023-12-20T23:15:49.680Z,可以使用以下两种格式之一:

  1. 支持时区解析的写法:
@CsvDate(value = "yyyy-MM-dd'T'HH:mm:ss.SSSX")
  1. 直接匹配字面量Z的写法:
@CsvDate(value = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")

失败原因说明

你之前使用的yyyy-MM-dd'T'HH:mm:ss格式缺少两个关键部分:

  • 原始字符串中的毫秒片段(.680),需要用SSS来匹配
  • 末尾的时区标识Z,要么用X解析时区,要么用'Z'匹配字面量

异常提示的yyyy-MM-dd HH:mm:ss.fffffffff是java.sql.Timestamp默认的JDBC格式,但通过指定完全匹配输入的格式,就能让OpenCSV正确完成转换。

额外注意

如果输入字符串的毫秒位数不固定(比如有的是2位、3位甚至更多),可以调整格式中的毫秒部分:

  • 用SSS固定匹配3位毫秒
  • 用SSSSSS匹配微秒级精度(最多6位)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 21:37:04