This post is a continuation of a previous one that closed before I could ask all my questions. (If an admin wants to reopen that one and merge it with this one, that’s fine.) Essentially, while Ubuntu always reports the correct time (I’m in EST), Windows shows it in UTC - 4 hours off - and requires me to manually request a sync before it will convert to EST.
What I’ve Tried:
Respondents in the previous thread suggested setting my BIOS clock to EST, which does work, but I’ve read that’s actually not recommended and can interfere with Daylight Savings Time. So I reverted the RTC to UTC and the problem returned.
Maybe this is more of a Windows question than Ubuntu question, but since an Ubuntu install seems to be what raises this issue in Windows, I think this is the appropriate place.
This doesn’t look like an Ubuntu bug to me. It looks like the classic dual-boot RTC issue where Linux and Windows disagree on how the hardware clock should be interpreted.
Linux normally stores the RTC in UTC, while Windows assumes the RTC contains local time. As a result, Ubuntu shows the correct time, but Windows can end up several hours off until it performs a manual synchronization. The fact that Ubuntu is consistently correct and Windows immediately fixes itself after a sync is a strong indicator that this is what you’re running into.
I would leave the BIOS clock set to UTC and configure Windows to treat the hardware clock as UTC as well. On Windows, open an elevated Command Prompt and run:
Then reboot Windows. This is a well-known fix for dual-boot systems and avoids the drawbacks of forcing Linux to use local time, especially when daylight saving time changes are involved.
After rebooting, verify that Windows is still set to the correct time zone and that automatic time synchronization remains enabled. If everything is configured correctly, both operating systems should continue showing the correct time without requiring manual resynchronization after switching between Ubuntu and Windows.
The other thread was closed by the system as the Original Poster’s question was marked as Answered. It wasn’t your support question/thread, so I won’t re-open it.
If you dual boot; your different OSes must use the same system time, Microsoft Windows can use local time, Redmond time (Microsoft’s WA/US head office), or Internet time, where a Ubuntu system uses internet time by default.
Both Ubuntu and Microsoft Windows can use many timezones, but if they’re configured differently; they’ll always be (in almost all cases) the difference between your local timezone & UTC time (used by the internet as global time).
One other thing worth checking is whether Windows Network Time synchronization is enabled and functioning correctly. Since you mentioned that a manual sync immediately corrects the clock, NTP appears to be compensating for the problem after boot. If automatic time synchronization is disabled, delayed, or failing for some reason, that could explain why the clock remains incorrect until you manually trigger a sync. While this would not explain the underlying RTC discrepancy itself, it may be contributing to the symptoms you’re seeing.
I experienced the same issue on my dual-boot system (Windows and Linux).
The root cause is that Linux typically stores the hardware clock (RTC) in UTC, while Windows assumes the RTC is stored in local time. As a result, after booting Linux, Windows may display the wrong time until it performs a synchronization.
Rather than setting the BIOS clock to your local timezone, which can indeed cause issues with daylight saving time changes, I would recommend leaving the RTC in UTC and configuring Windows to treat the hardware clock as UTC as well.
This can be done by adding the following registry value in Windows:
I hadn’t been aware of this issue until I saw it in the previous thread. I kept thinking that Windows was broken somehow - it would have never otherwise occurred to me that the dual-boot situation would be causing this. But now I don’t have to worry anymore.