gpt4 book ai didi

java - 如何从 'timestamp with time zone' 列读取时区?

转载 作者:搜寻专家 更新时间:2023-10-31 08:25:47 35 4
gpt4 key购买 nike

我无法找到一种方法来读取类型为 timestamp with time zone 的 PostgreSQL 列中的时区值。

JDBC 提供方法 java.sql.ResultSet#getTimestamp(int, java.util.Calendar)但我必须提供我自己的日历。我没有办法从我正在阅读的时间戳字段中获取该日历。

我正在研究存储多个时区时间数据的系统。我需要保存包含时区信息的数据,并能够从数据库中读回该时区。

有没有可能没有这样的黑客

  • 在另一个字段中存储时区值
  • 将日期存储为字符串,例如 'Wed 17 Dec 07:37:16 1997 PST'

我正在使用 JDBC 41(JDBC4 Postgresql 驱动程序,版本 9.4-1201),java 8。

最佳答案

PostgreSQL 文档 here说:

For timestamp with time zone, the internally stored value is always in UTC (Universal Coordinated Time, traditionally known as Greenwich Mean Time, GMT).

所以没有必要“存储时区[对应于时间戳值]”本身timestamp with time zone 值始终存储为 UTC。

此外,不需要“从时间戳字段中获取日历”。日历的目的是让您定义希望在您的 Java 应用程序中使用的特定时区。

换句话说,timestamp with timezone 不存储来自不同时区的值(例如,一些在 EST 中,另一些在 PST 中,等等),它在插入时间戳值时将所有内容转换为 UTC .

关于java - 如何从 'timestamp with time zone' 列读取时区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30785635/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com