I have used Linux for more than 20 years now, and as long as I can remember, dual-booting with Windows has caused troubles with the clock. Windows prefers to set the hardware clock to local time, whereas Linux uses UTC by default. I’m 99.9% on Linux now, so it always felt wrong to change Linux defaults to accommodate Windows when I need it maybe a few times per year.
Just recently, when I was trying to enforce immediate time synchronization , I saw that timedatectl complains about my non-UTC configuration, and I googled it and accidentally spotted a Reddit post about changing Windows behavior and enforcing it to use UTC for the hardware clock.
Hell froze over! 20 years I’ve been waiting to bend Windows to my will and do that!
Setting both Windows and Linux hardware clock to UTC
- We start on Linux by disabling RTC in local TZ:
timedatectl set-local-rtc 0
You can check it by:
timedatectl status
...
RTC in local TZ: no
- Now boot into Windows and enforce it to use UTC as the hardware TZ (use Administrator elevated cmd):
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f
- You have the best support on Linux, and it stays in sync on Windows.
](https://gagor.pro/2025/12/i-made-windows-use-utc-with-linux-dual-boot/images/cover.webp)