「起動時に自動で時刻を同期する: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でも正しく時刻が表示されるようになりました。