9

I have a computer (HP-e010nr) that dual-boots Linux Mint 18.3 (Cinnamon, 64-bit) and Windows 8.1 (64-bit). Both are installed via BIOS compatibility mode (the Windows installer refused to use UEFI). My issue is:

When I start Linux, it sees that the system clock is not UTC, so it changes it to UTC (and then displays it 7 hours back to keep the right time). When I start Windows, it expects the system clock to be normal time (not UTC). It displays the clock as 7 hours ahead of my time zone, making timestamps wrong.

I can change the hardware clock to normal time after shutting down Linux, but this is very annoying to do. I would like them to both display the same time if I shut down Linux and booted Windows.

Is it possible to stop Linux from changing the hardware clock so that other operating systems (Windows and Android) will display the correct time?

0

3 Answers 3

4

Run this command to make Linux use local time. This will resolve the issue.

timedatectl set-local-rtc 1 --adjust-system-clock
1
  • +1, but seems its not fully supported. Prints the following warning: Warning: The system is configured to read the RTC time in the local time zone. This mode cannot be fully supported. It will create various problems with time zone changes and daylight saving time adjustments. The RTC time is never updated, it relies on external facilities to maintain it. If at all possible, use RTC in UTC by calling 'timedatectl set-local-rtc 0'.
    – Yarek T
    Commented Nov 3, 2021 at 7:58
20

On the Windows computer, open the Registry Editor (Run… regedit.exe) and navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation. Create a DWORD named RealTimeIsUniversal, and set its value to 1.

– Adapted from Ricardo Bohner's answer

Linux and other *nixes assume that your hardware clock is set to UTC, and simply corrects the clock that is displayed to a user. Windows, however, sets the hardware clock to the local time, correcting it to UTC when it is needed (i.e. networking, etc). By setting this in the registry, you are telling Windows that the hardware clock is UTC, and should be corrected to local time when shown to the user.

8

In the Windows machine open the registry editor in this location:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation

Create a DWord value called: RealTimeIsUniversal

Set its data = 1

3
  • Can you explain your answer in greater detail? At first glance it appears your suggesting to set the time zone to UTC which is precisely what the author didn’t want to do. Odd name for a key that has little to do with UTC. Duplicate candidate found so disregard the request for clarification.
    – Ramhound
    Commented Jul 3, 2018 at 23:33
  • @Ramhound This is telling Windows that the BIOS time is in UTC format, windows user-land stuff stays unaffected Commented Oct 7, 2020 at 19:58
  • @SteelBrain - My comment was an attempt (failed) to get the author to edit their answer. My comment was also from 2 and half years ago. It doesn't need a response at this point.
    – Ramhound
    Commented Oct 7, 2020 at 21:07

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .