TONT 37983 为什么Windows会将你的BIOS时间设定为本地时间?


Even though Windows NT uses UTC internally, the BIOS clock stays on local time. Why is that?

尽管 Windows NT 内部使用 UTC 时间,但 BIOS 的时钟却仍然设定为本地时间,这是为什么呢?

There are a few reasons. One is a chain of backwards compatibility.


In the early days, people often dual-booted between Windows NT and MS-DOS/Windows 3.1. MS-DOS and Windows 3.1 operate on local time, so Windows NT followed suit so that you wouldn’t have to keep changing your clock each time you changed operating systems.

早年间,人们经常在 Windows NT 和 MS-DOS / Windows 3.1 之间双启动。MS-DOS 和 Windows 3.1 使用本地时间,所以 Windows NT 延续了这一设计,以便你每次更换(启动的)操作系统的时候不用总是去修改时间。

As people upgraded from Windows NT to Windows 2000 to Windows XP, this choice of time zone had to be preserved so that people could dual-boot between their previous operating system and the new operating system.

后来人们从 Windows NT 升级到了 Windows 2000 直至 Windows XP,对于时区的设定也需要被保留,以便于人们可以在以前和后来的操作系统间进行双启动。

Another reason for keeping the BIOS clock on local time is to avoid confusing people who set their time via the BIOS itself. If you hit the magic key during the power-on self-test, the BIOS will go into its configuration mode, and one of the things you can configure here is the time. Imagine how confusing it would be if you set the time to 3pm, and then when you started Windows, the clock read 11am.

另一个将 BIOS 时钟设定为本地时间的原因是避免使人们通过 BIOS 设置程序设定时间时产生疑惑。如果在开机自检的时候按下相关的按键,BIOS 会进入设置模式,其中一项可以进行设置的就是当前时间。想象一下如果你把时间设置为下午3点,等进了 Windows 时却发现时间变成了早上11点的感觉。

“Stupid computer. Why did it even ask me to change the time if it’s going to screw it up and make me change it a second time?”


And if you explain to them, “No, you see, that time was UTC, not local time,” the response is likely to be “What kind of totally propeller-headed nonsense is that? You’re telling me that when the computer asks me what time it is, I have to tell it what time it is in London? (Except during the summer in the northern hemisphere, when I have to tell it what time it is in Reykjavik!?) Why do I have to remember my time zone and manually subtract four hours? Or is it five during the summer? Or maybe I have to add. Why do I even have to think about this? Stupid Microsoft. My watch says three o’clock. I type three o’clock. End of story.”

这时候如果你像这类人去解释:『不是的,那个时间是 UTC 时间,不是本地时间』,很可能会被回击『那又是他喵的什么鬼东西?你是说电脑让我设置时间的时候,我得把伦敦时间给输进去?(除了北半球夏季的时候,那就得输入雷克雅未克的时间了!?)凭什么我得记住我所在的时区,然后手工减去四个小时,或者夏令时的时候得减五个小时?哦,有时候还得用加的,为什么我非得做这些事不可啊?傻×微软,我的手表说现在是三点,我就输入三点,完事。』

(What’s more, some BIOSes have alarm clocks built in, where you can program them to have the computer turn itself on at a particular time. Do you want to have to convert all those times to UTC each time you want to set a wake-up call?)

(更有甚者,有些 BIOS 还有内置的闹钟功能,可以通过设置它来让计算机在特定的时间启动。你会乐意每次设置它之前,手工先将所有的时间转成 UTC 时间吗?)



您的电子邮箱地址不会被公开。 必填项已用 * 标注

 剩余字数 ( Characters available )

Your comment will be available after auditing.

Please DO NOT add any links in your comment, otherwise it would be identified as SPAM automatically and never be audited.