看一下这篇标题为:如何:在Linux中更改TimeZone的2种方法的博客文章。
红帽发行
如果您使用的是Red Hat之类的发行版,则复制文件的方法通常是可以接受的。
注意:如果您正在寻找与发行版无关的解决方案,那么它在Debian上也可以使用,但是如果您只需要关心Debian机器,下面有一些更简单的方法。
$ ls /usr/share/zoneinfo/
Africa/ CET Etc/ Hongkong Kwajalein Pacific/ ROK zone.tab
America/ Chile/ Europe/ HST Libya Poland Singapore Zulu
Antarctica/ CST6CDT GB Iceland MET Portugal Turkey
Arctic/ Cuba GB-Eire Indian/ Mexico/ posix/ UCT
Asia/ EET GMT Iran MST posixrules Universal
Atlantic/ Egypt GMT0 iso3166.tab MST7MDT PRC US/
Australia/ Eire GMT-0 Israel Navajo PST8PDT UTC
Brazil/ EST GMT+0 Jamaica NZ right/ WET
Canada/ EST5EDT Greenwich Japan NZ-CHAT ROC W-SU
我建议链接到它而不是复制。
$ sudo unlink /etc/localtime
$ sudo ln -s /usr/share/zoneinfo/Etc/GMT+6 /etc/localtime
现在,日期显示了不同的时区:
$ date -u
Thu Jan 23 05:40:31 UTC 2014
$ date
Wed Jan 22 23:40:38 GMT+6 2014
Ubuntu / Debian发行版
要更改这两个发行版中的时区,可以使用以下命令:
$ sudo dpkg-reconfigure tzdata
$ sudo dpkg-reconfigure tzdata
Current default time zone: 'Etc/GMT-6'
Local time is now: Thu Jan 23 11:52:16 GMT-6 2014.
Universal Time is now: Thu Jan 23 05:52:16 UTC 2014.
现在,当我们检查出来时:
$ date -u
Thu Jan 23 05:53:32 UTC 2014
$ date
Thu Jan 23 11:53:33 GMT-6 2014
注意:在Ubuntu 14.04和更高版本中,还可以通过一个命令使用此选项(来源:Ask Ubuntu- 从terminal设置时区):
$ sudo timedatectl set-timezone Etc/GMT-6
关于“ Etc / GMT + 6”的使用
摘自@MattJohnson关于SO的答案
Etc/GMT+6
为了与POSIX标准向后兼容,故意将类似的区域反转。请参阅此文件中的注释。
您几乎永远不需要使用这些区域。相反,您应该使用全名时区,例如America/New_York
或Europe/London
或适合您所在位置的任何时区。请参阅此处的列表。
echo $TZ
除了空行外,是否会产生其他结果)?另外,创建一个符号链接/etc/localtime
而不是复制实际文件可能是一个更好的主意(这样可以确保您的安全,以防zoneinfo数据发生更改(很可能永远不会更改))。