似乎(也许我错了)如果您想保留 JDBC 和 Postgres 发生某些事情时的时区,您需要将时区与时间戳分开存储。
那就是我宁愿给我的 ORM/JDBC/JPA 一个 Java Calendar
(或 Joda DataTime
)说时区America/New_York
到 Postgrestimestampz
字段。并且无论服务器时区(或默认为 UTC)如何,我都希望在检索时给我一个Calendar
with timezone America/New_York
。但是只看大多数 JDBC 代码(以及不会发生的依赖它的事情)。
它是否正确?
当 postgres 支持它时,我需要将 tz 存储在另一个字段中,这似乎很荒谬。
因此,似乎只有两个选项:
- 选择
timestampz
Postgres 列作为 ajava.util.String
并解析它。 - 将时区存储为单独的字段。
选项一和二需要某种类型的转换拦截器用于我的 SQL 映射/ORM 库。
- 什么是 JDBC 的最佳解决方案?
- JPA 的最佳解决方案是什么(如果与 JDBC 不同)?