「起動時に自動で時刻を同期する:Windows」2022-08-15

にて、Windows11で起動時に時刻がずれることがあると書きましたが、原因がわかりました。

教えてくれたのは、以下の Webです。

「WindowsのハードウェアクロックをUTCで管理する」

WindowsをLinuxなどの OSとデュアルブートしていると、OSの時計表示がおかしくなってしまうことがあるそうです。



以下、上記 Webより要約
+=+=+=+=+=+=+=+=+
「Windows」は内部でローカルの時間を利用し(日本であればUTC+09:00)、電源を切るときに BIOSにこの値を保存します。(ハードウェアクロック、RTC、CMOSクロックと呼ぶ)。
BIOSは搭載された電池によって、この値を保持・更新し、次回 Windowsが起動する際に Windowsに渡します。
「Linux」では、UTCそのものでハードウェアクロックを管理し、表示する際にはタイムゾーンに合わせた値を計算する。
+=+=+=+=+=+=+=+=+

 

ということで、

UTCそのものでハードウェアクロックを管理している Chrome OS flex を利用後にWindows11を起動すると、「UTCクロックを UTC+09:00と勘違いして表示する」ので時刻がずれるそうです。

(私の環境では、Windows11終了後に Chrome OS flexを起動するという「逆の場合」は時刻がずれません。)

上記 Webの教えに従って、

管理の方法を UTCで統一することによって解決します。
つまり、「Windowsのハードウェアクロックを UTCにあわせます」。


以下、上記 Webより抜粋。
+=+=+=+=+=+=+=+=+
コマンドプロンプトを開いて以下のコマンドを実行します。
このコマンドはレジストリを変更し、WindowsのハードウェアクロックをUTCに合わせます。
コマンドを実行する際管理者権限が必要です。

# set UTC
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f

戻す際は、下のコマンドを実行してください。

# unset
reg delete HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /f
+=+=+=+=+=+=+=+=+
(抜粋したのですが、たぶん「#」の行は不要だと思います)

ということで、Windows11でも正しく時刻が表示されるようになりました。