尽管Windows NT内部使用的是UTC时间,但是BIOS里的时间还是本地时间,这是为啥?

原因有那么一些,其中一个原因就是为了保持向后兼容性。
在早期,人们经常在Windows NT和MS-DOS/Windows 3.1之间进行双启动。MS-DOS和Windows 3.1 在本地时间运行,因此 Windows NT也效仿,这样你就不必在每次启动不同的操作系统时,不断更改系统时间了。

当人们从Windows NT升级到Windows 2000及Windows XP时,必须保留这种时区选择,以便人们可以在他们以前的操作系统和新操作系统之间进行双重引导。

将BIOS时钟保持在本地时间的另一个原因是,避免混淆通过BIOS本身设置时间的人。 如果你在开机自检期间按下魔法键,BIOS将进入其配置模式,你可以在此处配置的一项内容就是时间。
想象一下,如果你将时间设置为下午3点,然后启动 Windows 时,时钟显示为上午 11 点,那该有多混乱。

“这电脑的智商是硬伤啊,为什么它老是让我修改系统时间?”

如果你向他们解释,”不,你看,那个时间是 UTC,而不是当地时间”,他们的回答很可能是”这完全不合理啊,我就希望将系统的时间设置为现在我手表上显示的时间,仅此而已。”

(更重要的是,一些 BIOS 内置了闹钟,你可以在其中对它们进行编程,让计算机在特定时间自动开机。你是否希望每次设置闹钟时都必须将所有这些时间转换为UTC时间? 肯定不太想这样)

总结

兼容性再次立功,旺旺赞!

最后

Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《Why does Windows keep your BIOS clock on local time?》

最近我写了个东西

正如你们所知道的,拓扑梅尔智慧办公平台(Topomel Box)是一款绿色软件,主要面向经常使用电脑的朋友。它提供了各种提升办公效率的小功能,同时操作上尽可能地简单方便。