【问题标题】:Saving CET Date in UTC Format以 UTC 格式保存 CET 日期
【发布时间】: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


【解决方案1】:

如果您的专栏是TIMESTAMP,那么我会推荐

SYS_EXTRACT_UTC( TO_TIMESTAMP_TZ('2018-03-19T06:00:00+01:00','yyyy-mm-dd"T"HH24:mi:ss tzr') )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 2020-10-08
    • 2016-01-11
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多