10

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?

Zackary
  • 573

3 Answers3

23

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.

Joseph
  • 1,395
9

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

phuclv
  • 30,396
  • 15
  • 136
  • 260
5

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

timedatectl set-local-rtc 1 --adjust-system-clock
phuclv
  • 30,396
  • 15
  • 136
  • 260
Keltari
  • 75,447