Solution:
Root Cause: Windows/Linux Real-Time Clock (RTC) Interpretation Discrepancy By default, Linux systems interpret the hardware RTC as stored in Universal Coordinated Time (UTC), applying local time offsets dynamically via OS software. Windows, by default, assumes the hardware RTC is stored in local time. When dual-booting or switching between Linux and Windows on the same hardware, Linux converts the local RTC setting to UTC, driving the clock back or forward several hours upon rebooting into Windows.
Diagnostic Verification: Boots into Windows reveal exact system clock offsets matching your UTC offset (e.g., exactly +5 or -8 hours out of sync) immediately following a Linux session. Step-by-Step Fix: 1 Configure Windows to use UTC for Hardware RTC (Recommended Method) :
Open PowerShell as Administrator. Add the RealTimeIsUniversal registry key to force Windows to read the hardware clock as UTC: Copy
powershell
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1 /f
2 Disable Windows Time Zone Auto-Update Glitches :
Navigate to Settings > Time & Language > Date & time . Toggle Set time automatically OFF and then back ON to force instant realignment. 3 Alternative: Force Linux to Store Local Time :
If modifying Windows registry is prohibited, boot into Linux and run: Copy
bash
timedatectl set-local-rtc 1 --adjust-system-clock
Prevention & Long-Term Monitoring: Always standardize hardware RTC on UTC across all installed operating systems to maintain cross-platform log timeline consistency.