波斯特格雷斯夏令时时区



我有一个postgres表,其中有一列是时区的时间戳。存储的数据采用 UTC 格式。我想将此列从 UTC 转换为不同的时区。如何选择正确的时区,以便在邮政中考虑夏令时?我看过pg_timezone_names视图,并知道 postgres 实际支持的缩写。我担心的是,像加利福尼亚州这样的某些州在一年中的部分时间使用 PST 和 PDT。

我怀疑,像select current_time at time zone 'PDT'select current_time at time zone 'PST'这样的代码不会给我全年在加利福尼亚的正确当前时间。我明白了吗?

我知道我可以做一些像select current_time at time zone 'America/New_York'America/Los_Angeles这样的时间。我希望这样的事情能考虑到夏令时,因为我已经明确指定了位置。这是处理邮政夏令时问题的唯一正确方法吗?

理想情况下,我不想明确指定位置,而是更愿意使用 postgres 时区缩写。这能做到吗?

我和你有同样的问题。我能提供的最好的就是指向我刚刚找到的文档页面。pg_timezone_names文档

视图pg_timezone_names提供时区名称的列表,这些时区名称是 由 SET 时区识别,及其相关缩写, UTC 偏移量和夏令时状态。与缩写不同 在pg_timezone_abbrevs所示,其中许多名称暗示了一组 夏令时过渡日期规则。因此,相关的 信息跨本地 DST 边界更改。显示的 信息是根据当前值 CURRENT_TIMESTAMP。

我认为这是有道理的,也是我们所能希望的最好的。不幸的是,时区缩写不包括 DST 规则,我认为因为无法暗示特定的地理区域,因此它们只是 UTC 偏移量的符号。

最新更新