如何获取PostgreSQL支持的时区列表?

dar*_*rse 9 postgresql

这个问题是不言自明的。我在这里找到了这个文档:

https://www.postgresql.org/docs/current/view-pg-timezone-names.html

但是,它并没有真正提到如何获取所有支持的时区的列表。我怎样才能做到这一点?

Tim*_*sen 12

您可以尝试从 view 中选择pg_timezone_names,如文档所述

视图 pg_timezone_names 提供了 SET TIMEZONE 识别的时区名称列表,以及它们相关的缩写、UTC 偏移量和夏令时状态。

尝试以下查询:

SELECT
    name,
    abbrev,
    utc_offset,
    is_dst
FROM pg_timezone_names;
Run Code Online (Sandbox Code Playgroud)


Dem*_*tix 5

蒂姆的回答非常好。无论出于何种原因,我的 Postgres 数据库还包含一堆带有前缀“posix/”的内容,我还需要按字母顺序排列这些内容才能在网站上使用,所以我这样做了:

SELECT
    name,
    abbrev,
    utc_offset,
    is_dst
FROM pg_timezone_names 
WHERE name !~ 'posix' 
ORDER BY name asc;
Run Code Online (Sandbox Code Playgroud)