Why is "The system is configured to read the RTC time in the local time zone." by default?

On both my and my brother’s f41 kde respin installations, I’ve seen the undermentioned message when invoking timedatectl status:

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’.

               Local time: Tue 2025-03-25 15:48:13 GMT
           Universal time: Tue 2025-03-25 15:48:13 UTC
                 RTC time: Tue 2025-03-25 15:48:12
                Time zone: Europe/London (GMT, +0000)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: yes

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'.

Indeed, timedatectl set-local-rtc 0 remediates it. However, why is this state the default?!

2 Likes

It is not the default.
Instead it appears to occur when the time is set in bios to local time before installing fedora.

If the machine is set to UTC before the installation this never appears with fedora.

1 Like

@computersavvy, please elaborate on what you refer to by this. Specifically, does this solely occur when a user has overridden a firmware preference, or can it be OEM misconfiguration? If the latter, can be reverted?

If what you state previously is true, it must be the default for firmware which is in that state. In that case, why timedatectl set-local-rtc 0 isn’t set for such systems by default isn’t evident.

It’s probably an attempt to be compatible with MS Windows systems for those who choose to dual-boot their PC.

2 Likes

@glb, I do! superuser.com/questions/1336303/how-can-i-stop-linux-from-changing-windowss-clock/1336307#comment2588711_1336320 appears to corroborate this. Any idea what set-local-rtc 0 does to a Windows installation?

It appears to be compatible insofar as you instruct Windows to utilise UTC:


  1. superuser.com/revisions/975764/5 ↩︎

1 Like

This hasn’t been a problem for Windows 10 and 11. Older versions of Windows required manual registry configuration.

@gnwiii, I’ve solely had Windows 11 (OsBuildNumber: 26120) and > f40 installed on this motherboard, so even if that solution is out-of-date, if Windows caused this misconfiguration, the problem remains.

This is not a misconfiguration of your Fedora installation. The RTC provides only a time, no information about a timezone. By default, Windows expects the RTC to be in the local timezone while Linux expects the RTC to be in UTC. An experienced user can solve this by modifying either Windows to deal with RTC in UTC (which can only be done by setting a Registry key and had some issues in the past, I don’t know if this is still the case) or by setting Linux to interpret the RTC in local time. Which one you choose does not matter as long as both systems agree on whether the time in the RTC is UTC or local time.

What you see on your machine is Anaconda’s attempt to be more compatible for novice users. See the comment in the function time_initialize() in https://github.com/rhinstaller/anaconda/pyanaconda/timezone.py:

def time_initialize(timezone_proxy):
    """
    Try to guess if RTC uses UTC time or not, set timezone.isUtc properly and
    set system time from RTC using the UTC guess.
    Guess is done by searching for bootable ntfs devices.
3 Likes

Windows expects the RTC to be set to local time.
As a result, when windows is installed and first configured it sets the RTC accordingly. This works great for a machine that only boots windows.

As noted, however, a dual boot machine with linux (which expects the RTC to be set to UTC) sees a time discrepancy.

It is very simple to first set the bios to UTC then within windows reset the date/time accordingly. Once windows is aware by the setting that the RTC is actually set to UTC then it keeps time accordingly.

Both windows and linux use NTP to verify the clock setting and keep it accurate. The issue here is the default expectations of the OS with the RTC settings. Resetting the windows clock to use an RTC set to UTC is simple and solves every time issue that I have seen.

1 Like

@computersavvy, is my previous citation a way to accomplish this that you can confirm works for you? There’s some debate at SuperUser over whether it functions:

I know that when I initially installed fedora on my laptop and saw the discrepancy that I reset the bios to utc and then reset the time in windows accordingly. It has worked consistently since.

I believe the command you were given set-local-rtc 0 instructs fedora to reset the RTC to the current UTC which it already knows as a result of NTP and/or the time zone setting.

Once that is done you would still need to reset windows to know that the RTC is UTC and not local time.

1 Like

I always set my windows machines to use rtc in utc.

As admin on windows this will do the trick.

reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f

Windows works just fine with this setting.
Abs dual booting to Fedora also just works fine.

Setting it within the system date/time settings also works without needing to do the low level registry editing (at least on windows 10).

I web searched for how to do that and always saw the registry hack.
Also my notes only record the registry hack.

Good to know I could do this in the UI now.

On my Windows 11 24H2 system, I did set the “RealTimeIsUniversal” registry entry but I cannot find a GUI way of telling Windows to use UTC for the RTC. Can you let me and the others know how you did this?

2 Likes

I did so on my windows 10/fedora dual boot laptop quite some time ago by simply using the time/date settings for windows with the RTC already set to UTC.

When I had a VM for windows 11 installed the time/date was set correctly also (on a different host) but will have to reinstall the VM to try that setting again.