Technical Anshu
Tutorials Blog
🕐 Dual Boot Time

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:

  1. The error is exactly your zone offset - 5:30 for India, never 5:17 or 6:05
  2. After a Windows session, Ubuntu shows the clock ahead by that offset
  3. After an Ubuntu session, Windows shows the clock behind by the same offset
  4. Run timedatectl in Ubuntu - the RTC in local TZ line says no, and RTC time matches Universal time, not your wall clock
  5. 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.

  1. Boot Ubuntu and open a terminal
  2. Run timedatectl set-local-rtc 1 --adjust-system-clock
  3. 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
  4. Run timedatectl again - RTC in local TZ should now say yes
  5. 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:

  1. Local RTC mode is described by the tool itself as not fully supported and able to cause problems
  2. 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
  3. If you boot several Linux systems, each assuming it owns the RTC meaning, local mode gets confusing fast
  4. 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:

  1. Ubuntu stays at its default (RTC in local TZ: no) - nothing to change here
  2. Windows gets one registry value under TimeZoneInformation
  3. 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:

  1. Someone sets timedatectl set-local-rtc 1 in Ubuntu and sets RealTimeIsUniversal in Windows
  2. Now Ubuntu writes local time into the RTC and Windows reads it as UTC - the error returns, flipped to the other OS
  3. Pick one convention. If you are undoing the Ubuntu side, the reverse is timedatectl set-local-rtc 0 --adjust-system-clock
  4. 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.

Watch Full Video
❓ Common Questions (FAQ)

Why exactly 5 hours 30 minutes in India?

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.