开曼群岛的时区信息不正确。
然而,开曼群岛政府考虑改变时区以实行夏令时,实际上与美国/东部时间相匹配但这并没有实现。
因此,当美国/东部时间本周末开始实行夏令时(2016 年 3 月 13 日),但开曼群岛尚未实行夏令时时,开曼群岛的时间现在晚了 1 小时。
作为解决方案,我们必须将时区从“开曼”更改为“牙买加”。
sudo mv /etc/localtime /etc/localtime.bak
sudo ln -s /usr/share/zoneinfo/Jamaica /etc/localtime
这显然不是一个永久的解决方案。
- 我应该怎么做才能永久解决这个问题?
- 我如何/向谁报告此错误?
答案1
美洲/开曼今年毕竟不会实行夏令时。推翻我们的猜测。 (感谢马特·约翰逊。)
现在需要做的就是让您的发行版更新其时区数据。您可以检查您的发行版的错误跟踪器中是否已提交错误,并在必要时提交一个错误...
同时您还可以下载更新后的 tarball并用它来更新您的区域信息文件。
答案2
每个人都使用的时区数据库由 IANA 维护。他们已经更新了数据库。最好的解决方案是您升级系统;当时区数据库发生变化时,大多数发行版应该提供更新的包。
如果由于某种原因您无法轻松更新系统以安装最新版本的时区数据库,您可以TZ
通过环境变量声明时区,它的优点是不需要任何类型的安装,但缺点是它需要显式设置,因此它不会帮助在多个时区上运行的应用程序。
export TZ='EST+5'
在具有 Glibc 的系统(即非嵌入式 Linux)上,另一种方法是检索最新的时区数据库并设置TZ
为:/path/to/zoneinfo/American/Cayman
(即带有前导冒号的文件路径)。这样做的好处是可以了解时区数据库知道的任何历史更改,而直接形式只知道当前规则,因此可能会导致历史时间错误。