在巴西,今年总统决定我们不应该实行夏令时。因为我的 Centos 8 服务器时间不对,我的意思是,当我使用date
时,显示的时间错了 1 小时。通常,当我设置服务器时,我会执行以下操作:
ln -s /usr/share/zoneinfo/Brazil/East /etc/localtime
Run Code Online (Sandbox Code Playgroud)
巴西东部时区现在是 -3,但使用时区上方的文件会得到 -2(因为出于某种原因,它错误地认为我们今年应该有夏令时,就像往常一样)。
那么我该如何解决这个问题?有没有一种方法可以告诉我的服务器每天根据政府的决定更新 zoneinfo 文件?让我们假设巴西总统今天决定我们明天应该进入夏令时。是否有国际组织提供根据当地政府决定更新的区域文件?
obs:我试过nano
文件 /usr/share/zoneinfo/Brazil/East 但是奇怪的字符出现在屏幕上所以我放弃了编辑它。
巴西不再观察夏令时是在tzdata-2019b大约 7 月。(ICANN,前身为 IANA,是编译更改的维护者。)
出于某种原因,我只在 CentOS 8 镜像上找到了 2019a。考虑在错误报告或邮件列表中提出问题。上游RHEL 承诺及时发布 tzdata。
在更新之前,请考虑在相同的偏移量处选择另一个城市,例如America/Argentina/Buenos_Aires。(希望双方都做理智的事情并且保持没有夏令时,但谁知道......)
巴西的 DST 更改包含在 TZ 版本 2019b 中。
运行yum update tzdata
应该会为您提供最新版本(实际上是2019c
,但它包含您关心的更改)。
您可以用来rpm -q tzdata
检查您拥有的版本。
CentOS 似乎在提供这些更新方面落后了——他们仍然只提供 2019a。有关讨论,请参阅https://www.centos.org/forums/viewtopic.php?t=72416 ;有关错误报告,请参阅https://bugs.centos.org/view.php?id=16702