1つのパソコンで[Windows]と[Ubuntu]の両方を使っている場合(デュアルブートなど)、表示される時刻に「ズレ」が生じることがあります。ズレが9時間の場合、これは両方のOSで時刻の取り扱いに違いがあることが原因です。
なぜ9時間ずれるのか
時刻に9時間のズレが生じるのは時差によるもので、日本の時差が協定世界時(UTC)から+9時間だからです。
パソコンは本体に時刻の情報(ハードウェアクロック)を持っており、その時刻をWindowsは「ローカル時刻(日本標準時/JST)」とみなしますが、UbuntuをはじめとしたLinuxでは「協定世界時/UTC」とみなします。時刻はインターネット上から自動的に同期してしまうため、WindowsとUbuntuの両方を使っていると同期のタイミングによって「時計がずれる」と言うことが起こりえます。
Windowsで「起動時に時刻を同期する」としても良いですが、本体の時刻を「ローカル時刻とUTCのどちらとみなすか」を揃えることもできるので、今回はUbuntuを「ローカル時刻である」とみなすよう変更してみました。
ローカル時刻とみなす手順
現在の状態を表示する
Ubuntuの端末より以下のコマンドを実行し現在の状態を表示します。
sudo hwclock --verbose
sudo apt-get install util-linux-extra
実行結果にハードウェアの時刻は UTC ですやハードウェアの時刻が UTC に設定されているものと仮定します。などが含まれていればハードウェアクロック=UTCとみなしています。
hwclock from util-linux 2.37.2 System Time: 1775085066.679958 Trying to open: /dev/rtc0 Using the rtc interface to the clock. ハードウェアの時刻が UTC に設定されているものと仮定します。 ...
ハードウェアクロック=UTCであればハードウェアクロック=ローカル時刻に変更します。
ハードウェアクロック=ローカル時刻に変更する
Ubuntuの端末より以下のコマンドを実行しハードウェアクロック=ローカル時刻にします。
sudo hwclock --verbose --systohc --localtime
sudo hwclock --verbose --systohc --utc
実行結果にハードウェアの時刻は ローカル時刻 ですやハードウェアの時刻が ローカル時刻 に設定されているものと仮定します。などが含まれていればハードウェアクロック=ローカル時刻とみなしています。
hwclock from util-linux 2.37.2 System Time: 1775085219.723201 Trying to open: /dev/rtc0 Using the rtc interface to the clock. ハードウェアの時刻が ローカル時刻 に設定されているものと仮定します。 ...
ローカル時刻とみなすやり方は以上です。
