Here is the workaround to fix the different times shown on the Windows Clock and Linux Clock.

Why do Windows Clock and Linux Clock Show Different Times?

Your computer keeps track of time even when it is shut down, something we mostly take for granted. It does this by storing the time on a clock on the motherboard. The difference arises in the way Windows and Linux (based on UNIX) handle the stored time. Windows will assume the time stored on the motherboard is the local time so it doesn’t apply any offset. Whereas, on the other hand, Unix based systems including macOS and Linux assume that the time stored on the motherboard is UTC (a.k.a. Greenwich Mean Time). Therefore, such operating systems will apply an offset to the store time to display the local time. Neither of these is actually wrong because what is time but a measurement. It doesn’t matter whether you measure it with an analog clock, digital clock, or even an hourglass as long as everyone is onboard with the measurement. Both these systems used by Windows and Linux work just alright independently. The problem occurs when they’re no more independent and the two operating systems co-exist on the same motherboard. For example, when you dual boot Windows 10 and Linux. Due to the difference in the way they handle the stored time, their clocks just don’t sync.

Fix Time Difference Between Windows Clock and Linux Clock

The fix is quite easy when you have a dual boot Windows 10 and Linux setup. We either make Linux change the way it interprets the stored time or we make Windows change its interpretation. It’s better to change how the Linux clock shows the stored time. Because Windows can run into problems that are hard to track, especially with some third-party applications. That’s because some Windows applications just assume that the time is local time. Besides, UTC time doesn’t work really with its Internet time-syncing service.

Method 1: Make Linux use local time

Not only is this a more reliable method, changing Linux’s ways is a much simpler process too. Ask anyone who uses the command line often, they’ll tell you it’s faster and easier. As long as you know specifically what you’re after it really is. Instead of opening apps browsing through settings and all, you could simply push a command. It’s a one-step process, provided you know what exactly you want to do. In this case, we need Linux to use to interpret the motherboard’s time as local time.  That can be done with this one simple command. Linux will no longer apply timezone adjustments to the clock on your motherboard. As a result, the clocks on your dual boot Windows 10 and Linux set up will be in perfect sync. Before you reboot though you should probably make sure it has worked. Just Enter the command below in the Terminal.

In the text you’re returned, look for “RTC in local TZ: yes”. If it’s “yes” it means things have worked out. You will also see a warning that says this mode is not fully supported but you don’t worry as long as you are dual boot Windows 10 alongside Linux. Linux doesn’t handle daylight savings well with the time configured to be interpreted as local time. But Windows will take care of the daylight savings so you don’t need to worry. In case you would ever like to undo this change, it’s as simple as entering the same command again but with 0 instead of 1.

Method 2: Make Windows use UTC Time

While this is not the preferable method, you can still do it this way. Before you can though, you’ll have to disable the Internet time updating feature on Windows. For this, go to Settings > Time & Language > Date & time. You can also reach here by right-clicking the clock in the taskbar and selecting Adjust date/time. Regardless of how you reach here, disable to toggle under Set time automatically. Next, we’re going to need to make some changes to the registry. This is why we recommend making the necessary changes in Linux instead. The Windows Registry is a sensitive part of the system and breaking it could lead to bad consequences. Although the little change we have to make does not directly affect the system a lot, it’s only fair that you’re warned about the dangers of messing with the registry. That being said, Windows does provide the tool you need to mess with the registry and it’s called Registry Editor. You can launch it by searching for regedit in the Windows search. When you have it open, navigate to the following address from the left column. You can also copy and paste the address in the address bar instead and hit Enter.

Right-click on the TimeZoneInformation key and select New > DWORD (32-bit) Value.

Name the newly created DWORD Value as RealTimeIsUniversal. Now right-click on it and select Modify or just double-click on it.

Change the Value data from 0 to 1 and click OK. You can now close the registry editor. From now on, Windows will store time as UTC time, just like Linux. Therefore, this will fix any time differences between the Windows clock and the Linux clock.

Why does Windows use Local Time Anyway?

The curious amongst you must be wondering, why does Windows use a different system than almost every other OS out there? The same reason Windows still uses registries and all the old legacy stuff. Backward compatibility has played a huge role in how Microsoft developed future versions of Windows. In this case, this was done to preserve backward compatibility with Windows 3.1. Admittedly, nobody really uses Windows 3.1 anymore so it doesn’t make much sense now. It’s about time that Microsoft should fix the Windows time situation. But then, why would they? It works alright, unless you dual boot. The official Microsoft blog explains this in much detail.

Δ

Fix Time Difference Between Windows and Linux Clock - 22Fix Time Difference Between Windows and Linux Clock - 21Fix Time Difference Between Windows and Linux Clock - 18Fix Time Difference Between Windows and Linux Clock - 74Fix Time Difference Between Windows and Linux Clock - 12Fix Time Difference Between Windows and Linux Clock - 96Fix Time Difference Between Windows and Linux Clock - 58Fix Time Difference Between Windows and Linux Clock - 60Fix Time Difference Between Windows and Linux Clock - 66