Should I set my BIOS to local time or UTC?

All we need is an easy explanation of the problem, so here it is.

I’m about to install a new system and just noticed that the BIOS time is set to UTC time. Should I set it to local time? What consequences does it have to leave it as is, or set it to local time?

The OS I’ll be installing is Kubuntu 11.04.

How to solve :

I know you bored from this bug, So we are here to help you! Take a deep breath and look at the explanation of your problem. We have many solutions to this problem, But we recommend you to use the first method because it is tested & true method that will 100% work for you.

Method 1

Check what your setting in /etc/default/rcS are if it is UTC=yes then set it to UTC in your BIOS and Kubuntu will use your time zone file adjust it properly. The problem is if it thinks your BIOS is UTC and it’s actually local time your hwclock is always going to be out of sync and when it uses timezone data like it would on a UTC clock you are going to end up with the wrong time.

Method 2

In a nutshell:

We are in 2018, hardware clock should be set to UTC time, even for Windows dual-boot.

To have Windows consider the hardware clock as UTC, do the following:

  • In the registry, under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation, add a key RealTimeIsUniversal with a value 00000001 of type dword
  • Disable Windows Time Service by running this command: sc config w32time start= disabled

See the explanation from the Ubuntu wiki

In details:

Most operating system considers the hardware clock to be UTC except Windows for ridiculous compatibility reasons and supposedly to avoid confusing users when setting time via bios (!) (comments on this blog post are worth reading by the way)

The Arch Linux wiki explains well the drawbacks of using local time for hardware clock:

There are two time standards: localtime and Coordinated Universal Time (UTC). The localtime standard is dependent on the current time zone, while UTC is the global time standard and is independent of time zone values. Though conceptually different, UTC is also known as GMT (Greenwich Mean Time).

The standard used by the hardware clock (CMOS clock, the BIOS time) is set by the operating system. By default, Windows uses localtime, macOS uses UTC, and UNIX-like systems vary. An OS that uses the UTC standard will generally consider the hardware clock as UTC and make an adjustment to it to set the OS time at boot according to the time zone.

If multiple operating systems are installed on a machine, they will all derive the current time from the same hardware clock: it is recommended to adopt a unique standard for the hardware clock to avoid conflicts across systems and set it to UTC. Otherwise, if the hardware clock is set to localtime, more than one operating system may adjust it after a DST change for example, thus resulting in an over-correction; problems may also arise when traveling between different time zones and using one of the operating systems to reset the system/hardware clock.

Method 3

In most cases, I would recommend to set BIOS to UTC time.
but if you dual boot with Windows. I would recommend local time.
Windows does not properly handle BIOS-set-as-UTC. So everytime you switch OS, one screws other’s time.

my two cents

You can hack the registry to make Windows support the UTC time though
refer to this Does Windows 10 support UTC as BIOS time?

Note: Use and implement method 1 because this method fully tested our system.
Thank you 🙂

All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply