如何设置没有夏令时的 CST 时区?

如何设置没有夏令时的 CST 时区?

我想将 Linux 盒子配置为使用 CST,无需日光。我的第一个想法是使用UTC-06区域文件,但由于某些奇怪的原因它提供 UTC+6,而不是 UTC-6 时间!

之后我读了tz 数据库时区列表维基百科上的文章,并将America/Costa_Rica区域文件复制到/etc/localtime.现在时区似乎没问题,但如果有一天哥斯达黎加政府决定改为白天怎么办?

为 Linux 设置 UTC-6 的正确方法是什么?

答案1

来自维基百科的文章兹数据库:

Etc 的特殊区域用于某些行政区域,特别是代表协调世界时的“Etc/UTC”。为了符合POSIX风格,那些以“Etc/GMT”开头的区域名称的符号与大多数人期望的相反。在这种风格中,GMT 以西的区域名称中带有正号,而以东的区域名称中带有负号(例如“Etc/GMT-14”是 GMT 之前/以东 14 小时。)

因此,如果您正在寻找完全没有夏令时的固定 UTC-6 时区,您应该使用Etc/GMT+6

# zdump /usr/share/zoneinfo/Etc/GMT+6 /usr/share/zoneinfo/America/Costa_Rica
/usr/share/zoneinfo/Etc/GMT+6           Sun Nov 13 09:23:52 2011 GMT+6
/usr/share/zoneinfo/America/Costa_Rica  Sun Nov 13 09:23:52 2011 CST

这确实令人困惑,但是嘿,它有效。所以:

ln -sf /usr/share/zoneinfo/Etc/GMT+6 /etc/localtime

应该可以解决问题。

您不应将 zoneinfo 文件复制到您的/etc/localtime,而应使用符号链接。这样,如果更新了 zoneinfo 数据库,您的系统将看到更改。 (不过在这种情况下并不重要。)

答案2

您确定永远不想使用夏令时?如果该地方的政府live 决定使用它吗?让你的计算机与现实世界不同步一个小时的目的是什么?

无论如何,设置TZ=CST6- 这不是存在于 zoneinfo 中的时区,它是较旧的环境变量标准。如果您想要一个实际的区域信息文件[可用于本地时间],请编译(使用zic)由单行组成的源文件:

Zone    Etc/CST6         -6:00  -   CST

并使用TZ=Etc/CST6并将生成的文件链接/复制到 /etc/localtime 中。

这样做的优点是使用正确的缩写而不是无意义的“GMT+06”

答案3

ln -sf /usr/share/zoneinfo/America/Costa_Rica /etc/localtime

时区更新包含在 Linux 发行版的更新中,因此您可以安全地使用 Costa_Rica 特定区域文件。

答案4

尝试萨斯喀彻温省里贾纳。该时区没有夏令时。

编辑:虽然该省的城市遵循寄宿省份的时区,但该省从未遵循夏令时。由于它们确实位于山区时区,因此它们实际上享有永久夏令时。虽然他们可能会切换到山区时间并开始使用夏令时规则,但没有政治意愿这样做。无论如何,您选择的时区将来都有可能发生规则更改的风险。只要看看一些州的时区,它们就会分为三个级别来处理州内特殊的时区划分。

相关内容