83

This question already has an answer here:

I have dual booted Windows 10 and Ubuntu 16.04 in UEFI mode (secure boot off). My time in BIOS is correct.

When I boot into Ubuntu and then boot into Windows 10, it shows the wrong time. I have to correct it manually or by the internet in Windows 10, and when I reboot into Windows 10 then it is not a problem. The clock will show the correct time. And then when I reboot to Linux the clock is correct, but switching back to Windows 10 the clock messes up again.

marked as duplicate by muru, Zanna, Community Apr 7 '17 at 8:50

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • 3
    Ubuntu is set for UTC time and Windows is not. You need to set your Windows for UTC time as well. Check out superuser.com/questions/185773/… – Terrance Jul 20 '16 at 16:08
  • thanks Terrance. I had asked this question on windows forums and they are just making me move round and round and then they left it unanswered – Brij Raj Kishore Jul 20 '16 at 16:57
  • Take a look at this as well : askubuntu.com/q/169376/295286 Frequent issue with dual boot – Sergiy Kolodyazhnyy Jul 20 '16 at 17:37
  • Not a problem. It's best to leave Ubuntu at UTC and set Windows to UTC. I have done it and noticed no problems. =) – Terrance Jul 20 '16 at 17:57
98

Multiple Boot Systems Time Conflicts

Operating systems store and retrieve the time in the hardware clock located on your motherboard so that it can keep track of the time even when the system does not have power. Most operating systems (Linux/Unix/Mac) store the time on the hardware clock as UTC by default, though some systems (notably Microsoft Windows) store the time on the hardware clock as the 'local' time. This causes problems in a dual boot system if both systems view the hardware clock differently.

The advantage of having the hardware clock as UTC is that you don't need to change the hardware clock when moving between timezones or when Daylight Savings Time (DST) begins or ends as UTC does not have DST or timezone offsets.

Changing Linux to use local time is easier and more reliable than changing Windows to use UTC, so dual-boot Linux/Windows systems tend to use local time.

Since Intrepid (8.10), UTC=yes is default.

Solution 1: Make Windows use UTC

Note: This method was not initially supported on Windows Vista and Server 2008, but came back with Vista SP2, Windows 7, Server 2008 R2 and Windows 8/8.1.

To make MS Windows calculate the time from the hardware clock as UTC.

Create a file named WindowsTimeFixUTC.reg with the following contents and then double click on it to merge the contents with the registry:

Windows Registry Editor Version 5.00

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

Note: Windows Time service will still write local time to the RTC regardless of the registry setting above on shutdown, so it is handy to disable Windows Time service with this command (if time sync is still required while in Windows use any third-party time sync solution):

sc config w32time start= disabled

If running the above command in Powershell, you'll have to specify sc.exe:

sc.exe config w32time start= disabled

Reversing the change

You can create a file with the following contents and then double-click it to merge in the original changes, as above:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
 "RealTimeIsUniversal"=-

If Windows Time service was disabled, enable it again with the command:

sc config w32time start= demand

Solution 2: Make Linux use 'Local' time

To tell your Ubuntu system that the hardware clock is set to 'local' time:

Pre-Ubuntu 15.04 systems (e.g. Ubuntu 14.04 LTS):

  1. edit /etc/default/rcS
  2. add or change the following section

    # Set UTC=yes if your hardware clock is set to UTC (GMT)
    UTC=no
    

Ubuntu 15.04 systems and above (e.g. Ubuntu 16.04 LTS):

  1. open a terminal and execute the following command

    timedatectl set-local-rtc 1
    

source: Ubuntu Help

  • 6
    At least give credit to where you copied your answer from: help.ubuntu.com/community/UbuntuTime – Terrance Jul 20 '16 at 18:51
  • 8
    Hi, it appears that you copied this answer from help.ubuntu.com/community/… . You're using someone else's work without giving the author credit. This amounts to plagiarism, and is not welcome on Ask Ubuntu. Remember to always add prominent attribution when using other sources. See the warning about plagiarism and information about citing your sources at askubuntu.com/help/referencing . Thanks! – Nick Weinberg Jul 20 '16 at 18:54
  • Thanks for citing your source. In the future please make sure to also use the formatting tools to format the quoted text as a quote. See my edit to your answer. Also, simply dumping a load of quoted text with no explanation or guidance for the person asking the question is not considered a good answer. Next time, please explain how what you are quoting can help the asker. – terdon Jul 21 '16 at 11:46
  • Well Thanks Ceda El and thanks for mentioning the source – Brij Raj Kishore Jul 21 '16 at 16:55
  • 2
    For the 2 first replies of these small-minded niggling individuals WHO DID NOT write and invest their own time in providing this amazing answer, yet just had to portray this guy who provided the answer as plagiarist you should be ashamed, I mean seriously? This is wrong, just add/flag with a link to that answer and say THANK YOU to that person who provided the answer. Stack Overflow has a buffer overflow of these kind of chums, when you help someone, this can never be "plagiarism", this is not a book or a prose, its 100% altruistic help, something that you guys did not provide here. – clusterBuddy Mar 27 at 7:11

Not the answer you're looking for? Browse other questions tagged or ask your own question.