My main desktop computer is set to dual-boot Linux and Windows XP Professional. I have the Linux OS set up to sync time with an internet time service. When I boot the WinXP OS, the time consistently shows four hours late -- as though it's interpreting the system clock to be on UTC (I'm actually in the US EDT zone).

Does Windows have a function, someplace, that can be told whether the system clock is set to UTC or to local time?

Or is there some other possible explanation for this consistent error?

Dani AI

Generated

This is the classic dual‑boot RTC mismatch: Linux typically keeps the hardware clock (RTC) in UTC while Windows historically assumes the BIOS/CMOS clock holds local time, so a switch between OSes produces a fixed offset equal to the timezone (four hours during Eastern Daylight Time). ’s deduction is essentially correct, and ’s Control Panel Date & Time only changes the displayed timezone — it won’t fix how each OS interprets the hardware clock. (man7.org)

Practical options that have worked for many setups:

Option A — make Linux write the RTC as local time (simpler if Windows is used mostly). On systemd systems:

timedatectl set-local-rtc 1 --adjust-system-clock

On older distros use hwclock to write the system time to the RTC:

sudo hwclock --systohc --localtime

This makes Linux set the firmware clock the same way Windows expects. Note the local‑RTC mode can complicate DST handling. (man7.org)

Option B — tell Windows to treat the RTC as UTC (keeps Linux in its default UTC mode). Add this registry value (backup the registry first):

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"RealTimeIsUniversal"=dword:00000001

This forces Windows to read the hardware clock as UTC; it’s widely used but not officially supported in every configuration and can interact oddly with some apps or time services — test and keep a restore point. (support.microsoft.com)

Quick checks/troubleshooting: from Linux run hwclock --show and date -u to compare RTC vs UTC; from Windows check the firmware clock in the BIOS/UEFI to see what the hardware clock actually contains. Remember that the offset will flip between 4 and 5 hours when DST changes if the RTC vs local interpretation is wrong. (man7.org)

Recommended Answers

All 4 Replies

I'm not overly sure, try the regional settings in the control panel, might turn something up.

No dice, but it was worth a look.

Okay, just checked on my windows server 2003 box. It seems it is under Date & Time . You should be able to change the timezone and other time related settings there.

I probably wasn't clear enough. I have no trouble changing the timezone or, for that matter, the date and time. The problem is that Windows appears to misinterpret it.

I have my Linux OS set up to read an internet time server, so that it keeps the machine clock as near perfectly-set as even an obsessive like me can expect. But when I reboot to the WinXP OS, Windows tells me that it's four hours later than it actually is. If I reboot directly back to Linux, the time is again shown correctly.

From this I deduce (perhaps incorrectly) that the system clock is not changed, but that Windows, for some reason, assumes that the system clock is reporting UTC and -- since I've told Windows that I'm in the US Eastern timezone -- Windows adds four hours to the system-clock time to make up for the timezone difference between UTC and EDT.

It's not that I have any trouble telling Windows what timezone I'm in. Rather, I want to tell Windows that the system clock is set for my timezone, not for UTC.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.