PC如何知道时间何时更改?


15

在我国,官方时间在春季和秋季的第一个月发生变化。当官方时间改变时,我的手机和PC的时钟也会改变。

这些设备如何发现有变化?


哇。半年的夏时制
mcalex

2
电脑知道现在几点了?而且您知道夏令时应该更改的日期正确吗?因此,在操作系统中编写一行代码if (date=DST_START) then hour=hour+1 else if (date=DST_END) then hour=hour-1通常是足够的,但这很简单,但是如果规则发生了变化(例如2007年在北美),则需要下载操作系统更新。除此之外,唯一的问题是,如果系统时钟错误(例如,主板电池没电了),则它不知道何时更改时间(但这无关紧要,因为您仍然需要确定日期和时间)。
Synetech

Answers:


20

大多数操作系统都具有计算该时间的基本规则(例如,特定日期之后的第一个周末),因此它们可以自行调整,而无需连接任何时间服务器。但是,如果官方规则发生更改(例如,俄罗斯的最新更改)或恢复了系统备份(因此系统将时间调整了两次),这可能会增加系统的时钟。

或者,某些设备可能会与远程服务器联系(无论如何,它们很可能一直都在这样做)或使用其他类型的嵌入式时间戳记(例如,在谈论电视节目和接收器/记录器/电视)。

编辑:只需提一下:较旧版本的Windows(例如Windows 95或Windows 98)从不信任自己的估计,因此,他们总是告诉用户验证更改后的正确时间。Windows Vista和Windows 7(不确定它们之间的版本)不再这样做,只是假设它们是正确的(除了使用时间服务器同步时钟外)。


NTP不包含任何DST或时区信息。它只是确定UTC当前的时间。客户必须使用Olson数据库或等效数据库分别应用适合其时区的规则。Windows时间服务似乎仅实现NTP,而无法传播更新的时区规则:technet.microsoft.com/zh-cn/library/cc773061
v=ws.10).aspx

好的,因此NTP仅可用于确定本地时钟是否仍在DST上,以防系统认为应该进行调整(例如,恢复到备份后)。但是,听起来不错,考虑到UTC / GMT + 0永远不会改变。改了一下句子。
马里奥(Mario)

7

Linux使用IANA时区数据库来了解DST何时更改。对于Windows,有许多不同的原因。首先,Windows在本地时间使用RTC,而在UTC中使用Linux。想象一下DST在Windows上发生了变化。这样可以在将来“创建”文件,并且可能会引起一些问题。同样,较旧的Windows对DST的处理方式也有所不同,因为那时存在不同的DST规则,并且Microsoft不再为这些Windows版本提供更新,因此它们现在无法更改DST规则。

此处的更多信息:http : //en.wikipedia.org/wiki/Daylight_saving_time#Computing



1

手机设法通过网络更新时间。对于Windows,类似地,它通过Internet更新。仅当您选择自动更新时间时,此方法才有效。您可以在手机或PC上检查日期和时间设置。 在此处输入图片说明

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.