Dual Boot Ubuntu Windows Wrong Time Hours Apart Fix
Boot Windows, the time is right. Boot Ubuntu, it is five and a half hours ahead. Fix it in Ubuntu, go back to Windows, and now Windows is behind. This is not two broken clocks - it is one hardware clock being read in two different languages.
✍️ Technical Anshu🐧 Ubuntu⏱️ 6 minute read
🎥 Watch the full video - every Ubuntu time fix shown live, step by step
Your motherboard has one hardware clock (the RTC). At shutdown, the running OS writes the current time into it; at boot, the next OS reads it back. The fight is about what that stored number means. Windows assumes the RTC holds local time - the time on your wall. Ubuntu assumes the RTC holds UTC, and converts to your zone for display. Both are self-consistent. Together, they guarantee the clock is wrong by exactly your time zone offset after every switch - for India, exactly 5 hours 30 minutes.
Terminal - Ubuntu right after a Windows session wrote the hardware clock
$ timedatectl
Local time: Sun 2026-10-25 15:44:03 IST
Universal time: Sun 2026-10-25 10:14:03 UTC
RTC time: Sun 2026-10-25 10:14:03
Time zone: Asia/Kolkata (IST, +0530)
System clock synchronized: no
NTP service: active
RTC in local TZ: no
Windows stored 10:14 (its local time) into the RTC. Ubuntu read that as 10:14 UTC and added 5:30 for IST, showing 15:44. Example values - the fingerprint is the exact zone offset.
1
Recognise the Fingerprint Before Fixing
This fault has a signature you can verify in one minute:
The error is exactly your zone offset - 5:30 for India, never 5:17 or 6:05
After a Windows session, Ubuntu shows the clock ahead by that offset
After an Ubuntu session, Windows shows the clock behind by the same offset
Run timedatectl in Ubuntu - the RTC in local TZ line says no, and RTC time matches Universal time, not your wall clock
If Ubuntu stays online for a while, NTP may quietly step the time right - which hides the fault until the next switch
Error not a round zone offset? Then this is not your page - drift and sync failures live in the other guides.
2
Fix on the Ubuntu Side - timedatectl set-local-rtc
The one-command route: tell Ubuntu to treat the RTC the way Windows does.
Boot Ubuntu and open a terminal
Run timedatectl set-local-rtc 1 --adjust-system-clock
The --adjust-system-clock part matters: it converts your current system time as the mode changes, so the displayed time stays correct through the switch instead of jumping once more
Run timedatectl again - RTC in local TZ should now say yes
Boot Windows, confirm its clock, boot back to Ubuntu, confirm again
From now on both systems read and write the same meaning, and the fight is over.
3
The Honest Cost of the Ubuntu-Side Fix
This command is built into Ubuntu and is the standard quick fix - but run it knowing the trade, because timedatectl itself prints a warning when you use it:
Local RTC mode is described by the tool itself as not fully supported and able to cause problems
The classic trouble spot is daylight-saving changes: a local-time hardware clock cannot tell whether it was already adjusted. India does not use daylight saving, so this specific risk barely applies to IST users
If you boot several Linux systems, each assuming it owns the RTC meaning, local mode gets confusing fast
Your log timestamps and file times are still correct internally - Ubuntu keeps working in UTC inside; only the hardware clock convention changed
For a two-system home PC in India, this is the pragmatic fix most people should take. The cleaner-on-paper alternative is next.
4
The Other Fix Lives on the Windows Side
Instead of bending Ubuntu, you can teach Windows to treat the RTC as UTC - Ubuntu's native language - by setting the RealTimeIsUniversal registry value. That route has its own full guide in this series; the short version:
Ubuntu stays at its default (RTC in local TZ: no) - nothing to change here
Windows gets one registry value under TimeZoneInformation
It is conceptually the tidy solution - UTC everywhere - but it is not an officially supported Windows configuration, which is why it gets its own honest grading page
Read that guide before choosing if your machine matters to you.
5
The One Rule - Never Apply Both Fixes
The most common way this problem survives for months:
Someone sets timedatectl set-local-rtc 1 in Ubuntu and sets RealTimeIsUniversal in Windows
Now Ubuntu writes local time into the RTC and Windows reads it as UTC - the error returns, flipped to the other OS
Pick one convention. If you are undoing the Ubuntu side, the reverse is timedatectl set-local-rtc 0 --adjust-system-clock
After choosing, do the full test: Windows boot, note the time; Ubuntu boot, note the time; one more Windows boot. All three must agree with your phone
Two wrongs here do not make a right - they make a seesaw.
🕐 Quick check first: if your clock error is not exactly your time zone offset, do not use this fix. Random minutes belong to sync failures and dying batteries - the pattern decides the cure.
Watch the Complete Video Guide
The full video walks through the dual boot clock fight live - the timedatectl evidence, both fixes, and how to verify the seesaw has stopped.
Because that is India's offset from UTC. Windows stored your wall time into the hardware clock; Ubuntu read the same number as UTC and added 5:30 for display. In another country the jump equals that country's offset - the size of the error is the diagnosis.
Which fix is better, the Ubuntu one or the Windows registry one?
For most home dual boots, the Ubuntu command timedatectl set-local-rtc 1 is simpler and reversible in one line. The Windows RealTimeIsUniversal route keeps UTC everywhere, which is conceptually cleaner, but Microsoft does not officially support it. Both work; pick one and never combine them.
I fixed it, but Ubuntu still shows wrong time at the login screen for a minute. Why?
If internet sync is on, Ubuntu may boot with the RTC value and then step to the correct time once the network is up. After a proper single-convention fix this should stop, because the RTC itself then holds the right meaning. If it persists, check with timedatectl that RTC in local TZ matches the fix you chose.
This guide is based on the Technical Anshu Ubuntu time fix video - stuck on any step, ask in the video comments and you will get an answer.