【設定確認から変更方法まで】Linuxでのタイムゾーンの扱い方

  • このエントリーをはてなブックマークに追加
  • Pocket
Linuxのタイムゾーン

タイムゾーンとは、国や地域ごとの標準時刻や時間帯のことだ。コンピュータやシステムには時間が大いに関係していて、重要なのはご存知の通りだ。

このページではLinuxでのタイムゾーンの設定確認方法や変更方法についてまとめた。参考にしていただければと思う。

タイムゾーンとは?

時差により国や地域ごとによって時刻がことなることは容易に想像できると思う。コンピュータも時計を内蔵している限り、時差と無関係ではいられない。

日本はUTC(協定世界時)よりも9時間早い時刻が標準時刻となる。国や地域ごとの標準時刻、時間帯をさして「タイムゾーン」という。

日本は狭いため標準時刻は一つだが、国によっては地域ごとに標準時刻が違う国も存在する。

タイムゾーンの情報は「/usr/share/zoneinfo/」ディレクトリの下にバイナリファイルとして納められている。タイムゾーンは「UTC(協定世界時)プラスマイナス何時間なのか?」という情報ともいえる。

UTC(協定世界時)とは?

UTCとは「Universal Time Coordinated」の略であり、訳すと「協定世界時」と訳される。世界の共通標準時刻であり、セシウム原子時計によって刻まれる時刻を基準としている。

セシウム原子時計はこの世でもっとも正確な時刻を刻んでいる。1年のあいだに100万分の1秒未満の誤差である。それに加え地球の自転速度のゆらぎなども考慮し、調整したものがUTCとなる。調整手段としては「うるう秒」の挿入などがほどこされる。

時刻基準としてGMT「Greenwich Mean Time」グリニッチ標準時があがることもあるがGMTとUTCでは100年間で約18秒のズレが生じてしまう。

コンピュータの世界ではUTCの方がよく調整されており厳格なため、現代ではUTCを使用している。

タイムゾーンの設定

「/usr/share/zoneinfo/」ディレクトリのしたにあるゾーン情報ファイルを「/etc/localetime」としてコピーすることでタイムゾーンを設定できる。実態をコピーしてもよいが、シンボリックリンクをはっても同じ効能が得られる。

例えば日本の場合、

# cp /usr/share/zoneinfo/Asia/Tokyo /etc/localetime

またはシンボリックリンクを貼る場合

# ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localetime

また環境変数TZを設定することでタイムゾーンを指定することも可能だ。これは恒久的ではなく一時的な変更を行いたい場合に使用することが多いだろう。

シェルが標準のbashの場合

$ export TZ="Asia/Tokyo"

状態を確認するには「date」コマンドを叩く、日本の場合は「JST」と表示される。

$ date

date

CentOS7の場合

CentOS7では「timedatectl」というコマンドが存在するのでそちらで管理しよう。

「Asia/Tokyo」(JST)にタイムゾーンを指定する。

# timedatectl set-timezone Asia/Tokyo

状態を確認する。

# timedatectl status

timedatectl-status

上記を参照すると「Local time」が「JST」であり「Universal time」が「UTC」となっている。比較すると9時間ほどずれていることが確認できる。

また

# timedatectl list-timezones | grep Tokyo

timedatectl-list

などとすると、タイムゾーンのリストが得られる今回は「grep」で「Tokyo」と絞り込んだ。

まとめ

このページではLinuxでのタイムゾーンの確認や変更方法についてまとめてきた。

日本でシステムを扱うのであれば、「Asia/Tokyo」に設定しておけばまず問題ないだろう。インストール時に設定すべきものでもあるが、変更や引き継ぎでシステムを引き受けたとき、挙動がおかしければ疑ってみるといいだろう。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

SNSでもご購読できます。

コメントを残す

*