Linuxマシンで、zoneinfoファイルを/etc/localtime
にコピーしてタイムゾーンをGMT + 6に設定していますが、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
これらのディストリビューションのいずれかでタイムゾーンを変更するには、次のコマンドを使用できます。
$ 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以降にも1つのコマンドで提供されています(ソース:Ask Ubuntu- ターミナルからタイムゾーンを設定 ):
$ Sudo timedatectl set-timezone Etc/GMT-6
@ MattJohnson's answer on SO]からの抜粋
Etc/GMT+6
のようなゾーンは、POSIX標準との下位互換性のために意図的に逆になっています。 このファイル のコメントを参照してください。これらのゾーンを使用する必要はほとんどありません。代わりに、
America/New_York
やEurope/London
などの完全に名前が付けられたタイムゾーン、または場所に適したものを使用する必要があります。リスト here を参照してください。
これは私がUbuntuでそれを行う方法です。 Asia/Tokyo
を独自のタイムゾーンに置き換えるだけです。
echo 'Asia/Tokyo' | Sudo tee /etc/timezone
Sudo dpkg-reconfigure -f noninteractive tzdata
tzdata
には バグ があります。特定の値はdpkg-reconfigure
によって正規化されます:
echo 'US/Central' >/etc/timezone
dpkg-reconfigure -f noninteractive tzdata
# Current default time zone: 'America/Chicago'
echo 'US/Eastern' >/etc/timezone
apt-get install --reinstall tzdata
# Current default time zone: 'America/New_York'
tzselect コマンドはあなたが望むことをするように作られています。