我即将安装新系统,刚刚注意到 BIOS 时间设置为 UTC 时间。我应该将其设置为本地时间吗?保持原样或将其设置为本地时间会有什么后果?
我将要安装的操作系统是 Kubuntu 11.04。
答案1
检查您的设置,/etc/default/rcS
如果是,UTC=yes
则在 BIOS 中将其设置为 UTC,Kubuntu 将使用您的时区文件进行适当调整。问题是,如果它认为您的 BIOS 是 UTC,而它实际上是本地时间,那么您的 hwclock 总是会不同步,当它使用时区数据(就像在 UTC 时钟上一样)时,您最终会得到错误的时间。
答案2
简而言之:
现在是 2018 年,硬件时钟应该设置为 UTC 时间,即使对于 Windows 双启动也是如此。
要让 Windows 将硬件时钟视为 UTC,请执行以下操作:
- 在注册表中的 下,添加一个值为类型的
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
键RealTimeIsUniversal
00000001
dword
- 通过运行以下命令禁用 Windows 时间服务:
sc config w32time start= disabled
详细信息:
大多数操作系统都认为硬件时钟是 UTC,但 Windows 除外荒谬的兼容性原因,据称是为了避免用户通过 bios 设置时间时感到困惑(!)(顺便说一句,这篇博文的评论值得一读)
这Arch Linux 维基很好地解释了使用本地时间作为硬件时钟的缺点:
时间标准有两种:本地时间和协调世界时 (UTC)。本地时间标准取决于当前时区,而 UTC 是全球时间标准,与时区值无关。尽管概念不同,但 UTC 也称为 GMT(格林威治标准时间)。
硬件时钟(CMOS 时钟,BIOS 时间)使用的标准由操作系统设置。默认情况下,Windows 使用本地时间,macOS 使用 UTC,类 UNIX 系统有所不同。使用 UTC 标准的操作系统通常会将硬件时钟视为 UTC,并对其进行调整,以根据时区在启动时设置操作系统时间。
如果一台机器上安装了多个操作系统,它们都会从同一个硬件时钟获取当前时间:建议为硬件时钟采用唯一的标准,以避免系统间冲突,并将其设置为 UTC。否则,如果将硬件时钟设置为本地时间,多个操作系统可能会在 DST 更改后对其进行调整,从而导致过度校正;在不同时区之间旅行并使用其中一个操作系统重置系统/硬件时钟时也会出现问题。
答案3
在大多数情况下,我建议将 BIOS 设置为 UTC 时间。但如果您使用 Windows 双启动,我建议使用本地时间。Windows 无法正确处理 BIOS 设置为 UTC。因此,每次切换操作系统时,都会影响另一个操作系统的时间。
我的看法
你可以破解注册表,让 Windows 支持 UTC 时间,不过可以参考这个Windows 10 是否支持 UTC 作为 BIOS 时间?