我在两台不同的计算机上安装了 postgresql 13.2(全新安装,而不是升级),安装时设置的时区不一样。在第一台计算机上,时区设置为“ Eastern/US ”,而在第二台计算机上,时区设置为“ GMT ”。
在安装向导中,我保留了两者的默认值:[Default locale]
电脑#1:
- 操作系统:Windows 10 专业版
- 时区:(UTC-05:00) 东部时间(美国和加拿大)
安装后,我可以在 postgres.conf 中看到以下内容:
timezone = 'US/Eastern'
计算机 #2: 第二台计算机的配置:
- 操作系统:Windows 10 企业版 LTSC
- 时区:(UTC-05:00) 东部时间(美国和加拿大)
安装后,我可以在 postgres.conf 中看到以下内容:
#timezone = 'GMT' <-- commented, so default GMT is used
根据文档,从 Postgresql 9.2 开始,时区要根据系统设置。所以我假设计算机#1 是正确的行为。
https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-TIMEZONE
内置默认值是 GMT,但通常在 postgresql.conf 中被覆盖;initdb 将在那里安装与其系统环境相对应的设置。有关详细信息,请参阅第 8.5.3 节。
有没有人解释为什么会有这种不同的行为?