Linux
Linux 中的時區設置
我通過將 zoneinfo 文件複製到 ,在我的 Linux 機器上將時區設置為 GMT+6
/etc/localtime
,但該date
命令仍將時間顯示為UTCtime-6
. 任何人都可以向我解釋這種行為嗎?我假設
date
命令應該顯示UTCtime+6
時間。以下是我正在遵循的步驟:date Wed Jan 22 17:29:01 IST 2014 date -u Wed Jan 22 11:59:01 UTC 2014 cp /usr/share/zoneinfo/Etc/GMT+6 /etc/localtime date Wed Jan 22 05:59:21 GMT+6 2014 date -u Wed Jan 22 11:59:01 UTC 2014
看看這篇標題為:How To: 2 Methods To Change TimeZone in Linux的博文。
紅帽發行版
如果您使用的是 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 - setting timezone from terminal):
$ sudo timedatectl set-timezone Etc/GMT-6
關於“Etc/GMT+6”的使用
Etc/GMT+6
為了向後兼容 POSIX 標準,故意反轉了類似的區域。請參閱此文件中的註釋。您幾乎不需要使用這些區域。相反,您應該使用完全命名的時區,例如
America/New_York
或Europe/London
適合您所在位置的任何時區。請參閱此處的列表。