如何从“带有时区的时间戳”列读取时区?

2023-12-29

我无法找到读取 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 http://www.postgresql.org/docs/9.1/static/datatype-datetime.html说:

For timestamp with time zone,内部存储的值始终采用 UTC(通用协调时间,传统上称为格林威治标准时间,GMT)。

因此不需要“存储[与时间戳值相对应的]时区”per se; the timestamp with time zone值始终存储为 UTC。

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从“带有时区的时间戳”列读取时区? 的相关文章

随机推荐