Time change in Windows is one of the common annoyances that Windows and Linux users have to put up with on dual boot computers. Fortunately, the solution is usually simple.
It is increasingly common for users to choose to install Windows and Linux on the same computer, thus being able to enjoy both operating systems without major complications. Minor -complications, of course- if there are any and the time change in Windows is one of them. But why does this happen? The blame is somewhat shared, but let’s say it’s Windows that doesn’t get things right from the start.
In short, Linux sets the time automatically based on the UTC standard and forces the synchronization of the local hardware time, that is, the one marked by the BIOS on the motherboard; while Windows does it the other way around: it uses the local time and although there is the possibility of synchronizing using UTC, it is not a function that is enabled by default in the system.
In other words, Linux takes the exact time from the Internet and adjusts the local time accordingly, making it easy for the user. Windows, for its part, performs a time synchronization during the system installation process and from there, uses the local time for its own. There are reasons to do so, according to Microsoft, but the truth is that they are a bit outdated.
The consequence of this contradictory behavior is that when you use Linux there is no problem, but when you restart Windows you realize that the time does not correspond to what it should be. And what’s worse: the time change in Windows can be very precise, one hour, or completely crazy, depending on your time zone. How do you fix this? Let’s see it.
How to fix time-swap in Windows
It should be noted that there are different ways to correct the time change in Windows: the most accessible is to do it directly from the clock options, manually; it can also be done from Linux, so that it is the one that uses the local time and not the UTC; Some time ago it worked simply by activating the Windows time service so that it would be executed at the beginning of the session…
However, doing it manually doesn’t make sense, because you can forget it and end up getting tired and modify Linux either, when it does it right: the easiest way to apply the time change in Windows automatically and reliably is… Windows imitate Linux and use UTC time by default. To do this, you have to pull the old but practical Windows registry. By steps…
1. Open the Windows registry editor.
2. You agree that “this app may make changes to your device.”
3. Go to: “HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTimeZoneInformation” (you can copy and paste the path in the editor’s address bar, without the quotes).
4. Open the context menu on the “TimeZoneInformation” folder in the side panel and create a new value as you see in the image (“QWORD” for 64-bit systems, “DWORD” for 32-bit systems). As a name put «RealTimeIsUniversal«.
5. Open the context menu on the value already created, choose the option “Edit the value of…” and change it from “0” to “1”. And now you can close the editor.
That’s it. The time change in Windows has become history, because it is already using UTC time. However, there is a but. Now you will still see a single mismatch, but it will no longer be in Windows, but in Linux: when you enter the system, you will notice that the time has been changed backwards.
For example, if the time change in Windows was before an hour late, when you enter Linxu you will see an hour ahead. But don’t worry, because after a few seconds, Linux will automatically correct the time to the correct one. This also has a solution, but… it’s not worth waiting for a moment.