Should I set my BIOS to local time or UTC?
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 keyRealTimeIsUniversal
with a value00000001
of typedword
- 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.
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.
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?