Linux – How to have time synchronization work on localtime

arch linuxclockdual-boottimezonewindows

The Arch wiki suggests

Time standard

  • Recommended: Set both Arch Linux and Windows to use UTC, following Time#UTC in Windows. Also, be sure to prevent Windows from
    synchronizing the time on-line, because the hardware clock will
    default back to localtime.

  • Not recommended: Set Arch Linux to localtime and disable any time-related services, like NTPd. This will let Windows take care of
    hardware clock corrections and you will need to remember to boot into
    Windows at least two times a year (in Spring and Autumn) when DST
    kicks in. So please do not ask on the forums why the clock is one hour
    behind or ahead if you usually go for days or weeks without booting
    into Windows.

while Time#UTC_in_Ubuntu mentions

UTC in Ubuntu

Ubuntu and its derivatives have the hardware clock set to be
interpreted as in "localtime" if Windows was detected on any disk
during Ubuntu installation. This is apparently done deliberately to
allow new Linux users to try out Ubuntu on their Windows computers
without editing the registry.

To change this behaviour in Ubuntu you need to do the following. Open
the file:

/etc/default/rcS

and change UTC flag to UTC=yes.

So, is there any way to make Arch Linux behave the way Ubuntu does with UTC=no, i.e. no modifications to the Windows clock are necessary (that is, the hardware clock uses localtime) and one can still have Arch Linux synchronize time (since I barely use Windows anymore but unfortunately cannot abandon it and don't want to remember how I fixed the time issue should I have to install Windows anew)?

Best Answer

While you can use

sudo timedatectl --adjust-system-clock set-local-rtc true

to set the hardware clock to use local time, this will disable NTP synchronization and timedatectl status clearly notify you:

Network time on: yes NTP synchronized: no RTC in local TZ: yes

Warning: The system is configured to read the RTC time in the local time zone. This mode can not 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'.

So, there doesn't seem to be any way to have this work without breaking DST adaption (Then again, DST should be abolished altogether...).

Related Question