Linuxで日本標準時(JST)を協定世界時(UTC)として設定する方法

プチメモ

# date -u `date +%m%d%H%M.%S`
  • 何をするコマンドか?

システムクロックを協定世界時から日本標準時へ変える。つまり、日本標準時協定世界時+9時間)を協定世界時としてシステムクロックに書き込む。ただし、現在システムクロックには協定世界時が書き込まれている必要がある。(もし、日本標準時が書き込まれている状態で上のコマンドを実行すると更に9時間、時計が進んでしまうので注意。)

  • 何でそんなことが必要か?

LinuxWindowsデュアルブートにしている人には分かるかと。Windowsはシステムクロックを日本標準時として読みだしている。一方、Linux協定世界時として読みだしている。LinuxがNTPクライアントとしてNTPサーバから現在の時間を取得してくると、システムクロックに協定世界時を書き込んでしまう。そして、そのままリブートしてWindowsを立ち上げると現在時刻が9時間遅れてしまう。リブート前にそれを補正するためのコマンド。

“set_JST_as_UTC_and_reboot”というシェルスクリプト・コマンドを作っておくと便利。

#! /bin/bash

# set_JST_as_UTC_and_reboot, Ver. 1.00 2010/07/07 by Adsaria

date -u `date +%m%d%H%M.%S`
reboot

Linuxの様にシステムクロックは協定世界時にして、PCを利用している地域に合わせてOSがローカル時刻を画面に表示するのが正論かと思うが....。

【追記:2010/08/17】
Windowsのシステムクロックを協定世界時で使う方法があった。“UTCにするかJSTにするか、それが問題だ”を参照。