我想配置linux盒来使用CST w/o日光。我的第一个想法是使用UTC-06区域文件,但是由于一些奇怪的原因,它提供了UTC+6,而不是UTC-6时间!
之后,我阅读了维基百科上的tz数据库时区列表文章,并将America/Costa_Rica zonefile复制到/etc/localtime。现在的时区似乎还可以,但是如果某个时候科斯塔里卡政府决定到白天呢?
为Linux设置UTC-6的正确方法是什么?
发布于 2011-11-13 15:24:53
来自维基百科在tz数据库上的文章:
Etc的特殊区域用于一些行政区,特别是代表协调世界时的"Etc/UTC“。为了符合POSIX的风格,以"Etc/GMT“开头的区域名称与大多数人所期望的相反。在这种风格下,格林尼治时间以西的地区有一个积极的标志,东边的地区在格林尼治时间的东边有一个负号(例如"Etc/GMT-14“是在格林尼治时间以东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数据库被更新,您的系统将看到更改。(但在这种情况下并不重要。)
发布于 2011-11-14 18:40:12
你很确定你永远不想使用日光时间?如果你居住的地方的政府决定使用它会发生什么?让你的电脑与现实世界保持一个小时的不同步是什么目的?
无论如何,设置TZ=CST6 -这不是zoneinfo中存在的时区,它是旧的环境变量标准。如果您想要一个实际的zoneinfo文件可以用于本地时间。,请编译(使用zic)一个由单行组成的源文件:
Zone Etc/CST6 -6:00 - CST并使用TZ=Etc/CST6并将结果文件链接/复制到/etc/localtime。
这样做的优点是使用适当的缩写,而不是无意义的"GMT+06“。
发布于 2011-11-13 14:27:10
ln -sf /usr/share/zoneinfo/America/Costa_Rica /etc/localtime
时区更新与您的Linux发行版更新一起包括在内,因此您在使用Costa_Rica特定区域文件时是安全的。
https://unix.stackexchange.com/questions/24532
复制相似问题