Windows 10 Clock Occasionally Displays +5 hours Upon Startup

I've been having this strange issue with my system clock. Sometimes when I start up Windows 10, my clock displays a time that is 5 hours ahead of the current time. So if it's noon where I live (Eastern time zone), the clock says 5pm. It adjusts for Daylight Savings Time as well staying 5 hours ahead.

I've checked my time zone settings and it's set to the correct time zone. I have internet time set to sync with time.nist.gov, and when manually synchronizing the time, it correctly sets the clock, although the following error message appears when doing so:

"An error occurred while Windows was synchronizing with time.nist.gov. This operation returned because the timeout period expired."

This issue started immediately after erasing my hard drive and reinstalling Windows 10 from scratch, so it's not caused by anything I've installed since then. It only happens on Windows startup, but not every time. I currently have Ubuntu 16.04 installed in a dual boot configuration (the problem started before I installed Ubuntu), and I haven't seen any similar issues with the Ubuntu clock.

I've looked through similar time-related issues on the internet, but none seemed to match mine. This question is very similar to my own, but the issue there was caused by the hardware clock being off, and the clock shown in BIOS on my computer is set to the correct time.

What strikes me as strange is that the time is exactly five hours off, not a minute more, even adjusting for DST. It would seem to me that Windows is occasionally syncing with the wrong time zone, but I have no idea how to verify or correct that.

UPDATE: It turns out that switching from Ubuntu to Windows triggers the 5 hour offset every time, so it was indeed an issue with the hardware clock being set to Universal/Local by Ubuntu/Windows, respectively.


I would highly suspect Ubuntu and Windows disagreeing on whether the hwclock is localtime or UTC. The conflict usually comes about because Linux uses the the hwclock set in UTC, while Windows uses the hwclock set to the localtime zone.

If you want your hwclock to show the time in your timezone, then you will need to change linux to not be UTC, which means make linux use localtime. If you are OK with your hwclock (BIOS) to be in UTC, then change windows to be UTC.

From here:

Make Windows use UTC

Note: This method was not initially supported on Windows Vista and Server 2008, but came back with Vista SP2, Windows 7, Server 2008 R2 and Windows 8/8.1.


To make MS Windows calculate the time from the hardware clock as UTC.

Create a file named WindowsTimeFixUTC.reg with the following contents and then double click on it to merge the contents with the registry:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
 "RealTimeIsUniversal"=dword:00000001

Note: Windows Time service will still write local time to the RTC regardless of the registry setting above on shutdown, so it is handy to disable Windows Time service with this command (if time sync is still required while in Windows use any third-party time sync solution):

sc config w32time start= disabled

Reversing the change.

You can create a file with the following contents and then double-click it to merge in the original changes, as above:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
    "RealTimeIsUniversal"=-

If Windows Time service was disabled, enable it again with the command:

sc config w32time start= demand

Make Linux use 'Local' time

To tell your Ubuntu system that the hardware clock is set to 'local' time:

Pre-Ubuntu 15.04 systems (e.g. Ubuntu 14.04 LTS):

edit /etc/default/rcS and add or change the following section

#Set UTC=yes if your hardware clock is set to UTC (GMT)
UTC=no

Ubuntu 15.04 systems and above (e.g. Ubuntu 16.04 LTS): open a terminal and execute the following command:

timedatectl set-local-rtc 1