Opencsv 将 iso 8601 映射到 java.SQL 时间戳

问题描述 投票:0回答:1

我的数据格式为“2023-12-20T23:15:49.680Z”。这看起来像 ISO 8601。

我需要将其转换为 java.sql 时间戳。

我尝试使用这个和其他一些格式,但都不起作用: @CsvDate(值 = "yyyy-MM-dd'T'HH:mm:ss")

org.apache.commons.beanutils.ConversionException:字符串必须采用 JDBC 格式 [yyyy-MM-dd HH:mm:ss.ffffffffff] 才能创建 java.sql.Timestamp

正确的格式是什么?

java opencsv
1个回答
0
投票

我需要将其转换为 java.sql 时间戳

不,你不知道。

那个有严重缺陷的类

Timestamp
几年前就被 JSR 310 中定义的现代 java.time 类所取代。

将符合 ISO 8601 的字符串解析为

java.time.Instant
对象。

Instant instant = Instant.parse( "2023-12-20T23:15:49.680Z" ) ;

要使用该文本创建

String
,请调用
toString

String output = instant.toString() ;

如果需要与尚未更新到java.time的旧代码进行互操作,请调用添加到旧类中的新转换方法。

java.sql.
© www.soinside.com 2019 - 2024. All rights reserved.