【发布时间】:2023-04-06 05:45:01
【问题描述】:
我有一个格式为2018-03-19T06:00:00+01:00 的日期,它已经在CET 时间。
当我将其保存在 Oracle 数据库列 timestamp 中时,与 CET 完全相同,当再次检索时,它显示为 2018-03-19 7:00:00 AM 而不是 2018-03-19 6:00:00 AM
所以我已将CET 转换为UTC,然后保存到数据库中,检索时它现在可以正确显示。
cast(TO_TIMESTAMP_TZ('2018-03-19T06:00:00+01:00','yyyy-mm-dd"T"HH24:mi:ss tzr') at time zone 'UTC' as date
这是将CET 转换为UTC 然后保存在数据库中的正确方法吗?
【问题讨论】:
-
正确的方法是什么?您尚未分享任何代码。
-
是的,现在我分享了,但实际上我问过这种方法是否正确
-
你的列的数据类型是什么?
-
时间戳数据类型
-
Java 标签是否相关?您可以使用
OffsetDateTime.parse("2018-03-19T06:00:00+01:00").toInstant()并将获取的Instant通过PreparedStatement.setObject()存储到数据库中(如果使用的是JDBC 4.2 或更高版本)。
标签: java sql oracle datetime timezone