The Hour That Kept Shifting
Date: 2025-08-07 Duration: About 10 minutes Issue: Clock wrong by one hour after dual booting Root Cause: Windows and Linux handle hardware clock differently
The Symptom
Fresh EndeavourOS install, dual-booting with Windows 10. Works great.
Boot into Windows. Clock shows the wrong time. Off by one hour. Says Mountain Time, but the hour is wrong.
Boot back to Linux. Clock is fine.
Boot to Windows again. Off by an hour. Again.
The Explanation
Windows and Linux have different opinions about what time the hardware clock should store.
Windows: “The hardware clock stores local time. Mountain Time right now is 2:00 PM, so the RTC should say 2:00 PM.”
Linux: “The hardware clock stores UTC. It’s 2:00 PM Mountain, so the RTC should say 8:00 PM UTC.”
When you boot between them, each system “corrects” the time based on its assumptions. Windows sets it to local time. Linux sets it to UTC. Back and forth forever.
The hour difference comes from the timezone offset. Mountain Time is UTC-7 (or UTC-6 during daylight saving). Every boot, the clock shifts by that amount.
The Fix
Two options:
Option 1: Make Linux use local time (easier)
timedatectl set-local-rtc 1 --adjust-system-clock
Option 2: Make Windows use UTC (registry edit)
Go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation, create a DWORD called RealTimeIsUniversal, set it to 1.
What I Did
Went with Option 1:
timedatectl set-local-rtc 1 --adjust-system-clock
Got a warning:
Warning: The system is now being configured to read the RTC time in the local time zone
This mode cannot be fully supported. It will create various problems
with time zone changes and daylight saving time adjustments.
This warning is Linux being pedantic. For a personal dual-boot desktop, it doesn’t matter. Millions of people run it this way.
Booted into Windows. Clock was correct.
Booted back to Linux. Still correct.
Done.
What I Learned
UTC is theoretically “better.” It doesn’t have daylight saving complications. But for a personal machine that doesn’t travel between timezones, it doesn’t matter.
The registry method is the “proper” fix. But editing the Windows registry for a one-line Linux command seemed excessive.
The warning can be ignored. Linux wants you to use UTC. For enterprise servers, that’s correct. For a gaming desktop that dual boots, local time works fine.
Quick Reference
# Set Linux to use local time (for dual boot with Windows)
timedatectl set-local-rtc 1 --adjust-system-clock
# Revert if needed
timedatectl set-local-rtc 0
# Check current setting
timedatectl
Dual boot broke my clock. Fixed it with one command. Classic Linux vs Windows disagreement about how to do things.