user@argobox:~/journal/2025-08-07-the-clock-that-forgot-its-timezone
$ cat entry.md

The Clock That Forgot Its Timezone

○ NOT REVIEWED

The Clock That Forgot Its Timezone

Date: 2025-08-07 Duration: 10 minutes (once I understood the problem) Issue: Windows showing wrong time after dual-boot Linux install Root Cause: Hardware clock interpretation conflict


The Symptom

Installed Linux on my dual-boot machine. Booted into Windows the next morning. Clock said 7:00 AM.

It was 2:00 PM.

Timezone still showed Mountain. Windows wasn’t confused about where I was. It was confused about when.


The Problem

Windows and Linux disagree on how to store time in the hardware clock (RTC - Real Time Clock):

Windows: Stores local time. If you’re in Mountain timezone and it’s 2:00 PM, the hardware clock says 14:00.

Linux: Stores UTC. If you’re in Mountain timezone and it’s 2:00 PM, the hardware clock says 20:00 (or 21:00, depending on daylight saving).

When you switch between them:

  1. Linux boots, sets hardware clock to UTC
  2. Windows boots, reads hardware clock, assumes it’s local time
  3. Windows shows completely wrong time
  4. You feel like you time traveled

The Fix

Two options:

Option 1: Make Linux use local time like Windows

timedatectl set-local-rtc 1 --adjust-system-clock

Linux will complain with a scary warning about how this isn’t the “proper” way to do things. Ignore it. For a personal dual-boot system, this works fine.

Option 2: Make Windows use UTC like Linux

Open Registry Editor as admin, navigate to:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation

Create a DWORD value named RealTimeIsUniversal, set to 1.


Which I Chose

Option 1. One command versus editing the Windows registry? Easy choice.

Yes, Linux threw 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.

Millions of dual-boot systems run this way without issues. The warning is technically correct but practically irrelevant for a desktop machine that doesn’t travel between timezones.


Why This Happens

Both approaches are valid. Linux chose UTC because servers benefit from a consistent time reference that doesn’t jump around for daylight saving. Windows chose local time because… Windows.

Neither is wrong. They’re just incompatible defaults.

The real question is: why, in 2025, do we still store time in hardware as a single number with no metadata about how to interpret it? But that’s a rant for another day.


After The Fix

Booted into Windows. Time was correct.

Booted into Linux. Time was still correct.

Problem solved. Now I just need to remember that this happened in case I reinstall either OS and lose the setting.


My computer travels between two operating systems. It needed a passport for the timezone.