LinuxのCentOSでタイムゾーンを日本にするにはどうすれば良いですか?
時刻が9時間ずれているようですが、何が間違っているのでしょうか?
と言った疑問がありましたので、Linuxのタイムゾーンについて、現役エンジニアの筆者がまとめます。
筆者はWindowsサーバーやLinuxサーバーの運用構築を11年間以上おこなってきました。その経験を元に知識を公開していきます!
LinuxのCentOSでタイムゾーンを変更する方法
LinuxのCentOSでタイムゾーンを変更する方法です。
関連するファイルは「/etc/localtime」です。このファイルをlsコマンドで見てみます。
[root@localhost ~]# ls -l /etc/localtime
lrwxrwxrwx. 1 root root 32 1月 7 2023 /etc/localtime -> ../usr/share/zoneinfo/Asia/Tokyo
「/etc/localtime」ファイルは「/usr/share/zoneinfo/Asia/Tokyo」のリンクになっています。
つまりタイムゾーンを変更するには、「/etc/localtime」のリンク先を変更してあげれば可能です。
タイムゾーンの設定コマンド
タイムゾーンの設定コマンドは「/etc/localtime」のリンク先を設定するコマンドlsになります。
アメリカのニューヨークに変更してみます。
[root@localhost ~]# ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
タイムゾーンがアメリカのニューヨークになりました。
[root@localhost ~]# date
2024年 5月 2日 木曜日 11:19:46 EDT
タイムゾーンを日本に戻します。
[root@localhost ~]# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
[root@localhost ~]#
[root@localhost ~]# date
2024年 5月 3日 金曜日 00:22:06 JST
タイムゾーンが日本に戻りました。dateコマンドで確認しました。
Linuxのタイムゾーン一覧
Linuxのタイムゾーン一覧は「/usr/share/zoneinfo/」配下にあります。
[root@localhost ~]# ls /usr/share/zoneinfo/
Africa Canada GB Indian Mexico ROK iso3166.tab
America Chile GB-Eire Iran NZ Singapore leapseconds
Antarctica Cuba GMT Israel NZ-CHAT Turkey posix
Arctic EET GMT+0 Jamaica Navajo UCT posixrules
Asia EST GMT-0 Japan PRC US right
Atlantic EST5EDT GMT0 Kwajalein PST8PDT UTC tzdata.zi
Australia Egypt Greenwich Libya Pacific Universal zone.tab
Brazil Eire HST MET Poland W-SU zone1970.tab
CET Etc Hongkong MST Portugal WET
CST6CDT Europe Iceland MST7MDT ROC Zulu
LinuxのCentOSでタイムゾーンでUTCからJSTに変更する方法
Linuxのタイムゾーンの設定ファイルは以下がありました。
「/etc/localtime」
この設定ファイルをcatコマンドで見てみます。
[root@localhost ~]# cat /etc/localtime
TZi彎p恪Y靹・p挈;鞁鞁≒樔碚
汾
~~JDTJSTTZif2
e?p彎p恪Y靹・p挈;鞁鞁≒樔碚
汾
LMTJDTJST
UTC0
文字化けしています。catで見れない時はstringsコマンドで見ます。
[root@localhost ~]# strings /etc/localtime
TZif2
TZif2
UTC0
[root@localhost ~]#
見れました。最終行にはUTC0となっています。
dateコマンドで確認します。
[root@localhost ~]# date
2024年 5月 2日 木曜日 15:01:54 UTC
UTCになっており9時間ずれています。
このファイルの「UTC0」を「JST-9」に変更します。viエディタで変更します。
修正すると即時反映されます。再びdateコマンドで確認してみます。
[root@localhost ~]# date
2024年 5月 3日 金曜日 00:08:05 JST
UTCからJSTに変更になり9時間の差がなくなりました。
UTCの時刻を以下のコマンドで見る事も出来ます。
[root@localhost ~]# date --utc
2024年 5月 2日 木曜日 15:11:38 UTC
まとめ:LinuxのCentOSでタイムゾーンを変更する方法
LinuxのCentOSでタイムゾーンを変更する方法
Linuxのタイムゾーンを変更するには、「/etc/localtime」のリンク先を変更してあげれば可能です。
「/etc/localtime」ファイルは「/usr/share/zoneinfo/Asia/Tokyo」のリンクになっています。
Linuxのタイムゾーン一覧は「/usr/share/zoneinfo/」配下にあります。
タイムゾーンを日本に変更するコマンド
[root@localhost ~]# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
タイムゾーンを確認するコマンド
dateコマンド
[root@localhost ~]# date
2024年 5月 3日 金曜日 00:30:57 JST
UTC(世界標準)の時刻を知りたい場合は「dateに–utc」オプションを使用すれば確認できる。
[root@localhost ~]# date --utc
2024年 5月 2日 木曜日 15:32:05 UTC