最近(2019-04-25)巴西政府在全国范围内结束了夏令时的使用。
在我目前的项目中,我依靠 PostgreSQL 根据来自不同时区和日期的时间进行时区转换和分析。
就我而言,PostgreSQL 通过 Olson 数据库实现夏令时和时区。
1) PostgreSQL(例如版本 11)是否符合巴西新的无夏令时规则?
2)如果它没有更新,我该如何修复它?从这个意义上说,是否有任何默认的 PostgreSQL 补丁日历/时间表?
最近(2019-04-25)巴西政府在全国范围内结束了夏令时的使用。
在我目前的项目中,我依靠 PostgreSQL 根据来自不同时区和日期的时间进行时区转换和分析。
就我而言,PostgreSQL 通过 Olson 数据库实现夏令时和时区。
1) PostgreSQL(例如版本 11)是否符合巴西新的无夏令时规则?
2)如果它没有更新,我该如何修复它?从这个意义上说,是否有任何默认的 PostgreSQL 补丁日历/时间表?
是的,有一个时间表。它记录在这里:https ://www.postgresql.org/support/versioning/
目前(截至 2019 年 7 月 8 日)的次要版本路线图显示:
如有必要,每个次要版本都将包含更新的 DST 规则。
Postgres 11的最后一个次要版本是 2019 年 6 月 20 日的 11.4。我会假设它包括巴西 DST 的新规则,但我在发行说明中找不到任何提及,例如11.3和11.2版本。
所以很可能,11.5(计划于 8 月 8 日)将包括这一点。
如果你想从开发者那里得到权威的答案,你应该在Postgres 邮件列表中询问
Postgres可以使用操作系统的时区数据进行编译。您可以通过运行检查您的 Postgres 版本是否使用该
--with-system-tzdata
选项编译pg_config
截至2019-07-09,我从
修改时区数据的最新提交是d312de3fc092c784e743e58be4d1617cfb704b71:
现在从 2019 年 4 月开始的巴西时区更改已在 2019b 年发布,从邮件列表存档中可以看出:
结论是 2019-07-09 的最新 PostgreSQL 次要版本不包括巴西最新的夏令时更改。
您必须构建 PostgreSQL 才能在此更改已经生效的系统上使用操作系统的时区数据。或者您等待下一个 PostgreSQL 小版本。