Windows vs Linux当地时间?


40

自从我开始在Windows的双重引导中使用Linux之后,我注意到当我重新启动计算机时,另一个操作系统上的时间是错误的,例如在Linux上是12:00,然后在Windows上重新启动是18:00,并且当我检查BIOS时,RTC设置为18:00。由于我的时区是CST -06:00,因此我假设Linux只是将RTC的时间设置为UTC并根据时区重新计算时间,而Windows只是将RTC设置为本地时间。两者都使用同一台NTP服务器同步时间。

问题是,哪个人在做正确的事情?我应该在哪一个上将时区设置设置为UTC以便在两者上都有正确的时间?



附带问题:为什么在旧版本的Windows和Linux中没有发生这种情况?
golimar

Answers:


16

两者都没错,但是使用UTC更合适。RTC没有时区;这只是个笨钟。如果您的当地时区采用DST(具有多种风格,并且规则会任意更改),则每年两次,则必须进行更改。操作系统会为您执行此操作,但是如果RTC是UTC,则操作系统无论如何都会进行UTC->本地翻译-为什么要摆弄时钟?此外,在DST“后退”过渡期间,RTC无法告诉您现在几点了!CDT还是CST是凌晨1:30?

显然,Windows 8支持 RTC的UTC。Windows 7也可以,但是存在问题

当人们手动设置BIOS时钟时,对此有一个更好的论点,但是现在基于服务器的时间更为普遍。


68

我最近遇到了同样的问题,这就是我解决问题的方法。您需要在两个OS中都进行一些更改。

我首先开始使用Linux。以超级用户身份运行以下以下命令。

ntpdate pool.ntp.org

如果设置不正确,这将更新您的时间。

现在,使用此命令将硬件时钟设置为UTC。

hwclock --systohc --utc

资源

现在启动Windows并添加以下注册表。只需使用下面在记事本中的代码创建一个.reg文件。保存并运行。

Windows Registry Editor Version 5.00

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

资源

从下一次启动起,两个操作系统都会为您显示正确的时间。


6
最好记录的答案以及具体说明!+1。
agtoever

1
应包括注册表调整适用的Windows版本。
Tanath

2
Windows何时才能了解保持本地时间以外的其他时间的系统时钟?
2015年

1
此注册表项调整适用于Windows XP / Vista / 7/8 / 8.1。@Tanath
Ayan

3
@Mark在Windows XP中。
迈克尔·汉普顿

4

通常情况是Linux系统将RTC(实时时钟)设置为UTC,并且根据时区数据和TZ环境变量在用户空间中完成到本地时间的转换。之所以这样,是因为它可以使系统RTC单调增加,并在以后应用任何时区魔术,例如,确保将来通常没有文件带有时间戳(如果很容易每年至少发生一次),则可以说是“不错”。系统RTC设置为本地时间)。正如Ken所指出的那样,RTC本身没有时区的概念,只有时间。

正如您所发现的,这在使用通常无法以这种方式运行的系统进行双重引导时会引起问题,例如Microsoft系列操作系统通常期望将RTC设置为本地时间。是的,Windows NT(我想一直回到NT 4,实际上)可以将RTC设置为UTC,但至少最后我认为它不是真正受支持的配置,并且有很多警告。

在您的情况下,一种简单的解决方案可能是将RTC设置为本地时间,告诉您的Linux系统RTC设置为本地时间(执行此操作的确切机制因发行版和发行版而异,但显然在Ubuntu中,您UTC=no在/中设置了etc / default / rcS),然后配置操作系统,使其仅其中之一(最好是您使用最多的操作系统,因为在所有其他操作系统中显示的时间每年都会两次不正确,直到启动并有机会进行更正)可以处理夏令时更改。缺点是,在单用户系统上应该可以管理这些缺点。

您还可以将Windows端设置为将UTC用作时区,并关闭Windows中的自动夏令时更改,并使Linux设置为将RTC设置为UTC并根据其惯例显示时间。但是,这将导致Windows以UTC显示日期和时间,而这可能并不是您真正想要的。对于我们欧洲人来说,这不是什么大问题,因为他们距离UTC最多只有三个小时的路程,但在美国可能更成问题。如果您偶尔仅使用Windows,并且您的主要操作系统是Linux或其他支持RTC-UTC的操作系统,那么这可能是更现实的选择。


您是否有任何有关“它不是真正受支持的配置,并且有很多警告”的信息?
Random832'3

@ Random832让我看看是否可以找到它。我知道我以前看过它,但是现在看来至少无法通过快速的Google搜索找到它。
CVn

2

如果您进行双重引导,并且Windows和Ubuntu之间存在时间冲突,则会发生这种情况,因为默认情况下,Ubuntu在硬件时钟上将时间存储为UTC,而Microsoft Windows将时间存储为本地时间,从而导致Ubuntu和Windows之间的时间冲突。

您需要按照本指南针对Ubuntu的说明将Linux系统设置为使用本地时间。


它使用的是当地时间,我知道它确实将时间存储为UTC(如果您至少阅读了问题),并且我知道该如何解决这个问题,问题是哪一个实际上在做正确的事情换另一个。
arielnmz

默认情况下,Windows使用本地时间,Mac OS使用UTC,并且类似UNIX的操作系统有所不同。通常,使用UTC标准的OS会将CMOS(硬件时钟)时间视为UTC时间(GMT,格林威治时间),并在根据您的时区设置启动系统时间时对其进行调整。

同样,我知道,我只想知道哪个操作系统正确执行了操作,因此我可以例如将Windows时区设置为UTC并修复此问题,或者反之亦然。
arielnmz

@MagomedSegaIsmailov Mac OS是否可以在使用BIOS RTC的任何系统上运行?我以为EFI提供了一些理智。
Random832

0

我正在双重引导Windows 10和remix os,仅遵循Windows指南对我来说都是正确的。我也使用命令行来添加脚本,因为它更容易


请不要添加“谢谢”作为答案。在网站上花费一些时间,您将获得足够的特权来投票赞成您喜欢的答案,这是超级用户说谢谢的方式。
DavidPostill
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.