[HowTo] Get your time/timezone right using Manjaro/Windows dual-boot

The woes of dual-booting Manjaro/Windows

Windows defaults to setting the (RTC) real-time-clock to local-time and Linux sets RTC in UTC (universal-time).

This makes your time/timezone floating in space where it may be in doubt what time it actually is.

Manjaro configuration

The best approach to keep both working is to set your RTC (hardware clock) to UTC

sudo timedatectl set-local-rtc 0

And enable a network-time-daemon on Linux.

sudo systemctl enable --now systemd-timesyncd

Ensure your timezone is correct linking it to your /etc/localtime e.g for Jerusalem (Replace in the command below Continent/City case sensitive location)

sudo ln -sf /usr/share/zoneinfo/Asia/Jerusalem /etc/localtime

The get a list of supported zone groups (Continent)

find /usr/share/zoneinfo/ -maxdepth 1 -type d

Then list the content of your selected zone e.g. Asia (Cities)

ls /usr/share/zoneinfo/Asia

Windows configuration

Next step is to boot into Windows and instruct Windows to handle the hardware clock in UTC as described by @gohlip in this post.

The basics from the above post is to add an entry to the system registry. To avoid messing with the Registry Editor (regedit.exe) creating a file to import is the safest method.

Create a file on your Windows system using Notepad (notepad.exe) and name it utc.txt and save it on your desktop.

Rightclick your desktop → New → Text document

Copy/Paste below content as you need absolutely no errors.

Depending on your version of Windows this may work.

Older versions of Windows may import the file without complaints

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"RealTimeIsUniversal"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient]
"Enabled"=dword:00000000

Newer versions presumably Windows 10 requires the registry editor version and an empty line

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"RealTimeIsUniversal"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient]
"Enabled"=dword:00000000

When you have saved the file, open a command prompt and navigate to your Desktop folder and rename the file to utc.reg.

C:\Users\username> cd Desktop
C:\Users\username\Desktop> move utc.txt utc.reg

When you have renamed the file it can be imported into the registry by double clicking the .reg file found on your desktop.

Accept the disclaimer to import the keys and reboot your system.

The end result

Besides letting Windows use the systems RTC the registry keys also disables the Windows NTP client - so only Manjaro will adjust your clock.

21 Likes

Note that on Manjaro, all of this can be configured graphically with Manjaro Settings Manager > Time and dates.

1 Like

It can - but easier to explain step by step using terminal :slight_smile:

1 Like

Well, graphically, it isn't that long.

For all those steps:

  • Open Manjaro Settings Manager;
  • Click on Time and date;
  • To make Manjaro consider hardware clock as local clock, check the Hardware clock in local time zone option;
  • To automatically synchronize time with a time server, click on Set time and date automatically (it will enable systemd-timesyncd.service);
  • To change your timezone, click on Change Time Zone and select the desired place;
  • Once everything is configured to your liking, click on Apply, enter your password to get elevated privileges, then close Manjaro Settings Manager.

The only thing that makes it longer is the open MSM and close MSM part. It is essentially the space you would have used if you began with "Open your favorite terminal emulator", "press Enter after each command" and "Close the terminal emulator when everything is done".

2 Likes

Forum kindly sponsored by