我如何知道本地计算机时钟是否正确?我正在创建一个系统,在这个系统中,了解正确的时间。
是否有任何好的免费时间服务器可供我使用,或者是否有其他方法可以知道计算机时钟是否不正确?
答案1
您需要一个外部时间源,以便与时间源相比了解您是否休息。
来源越多,就越安全。通常,NTP 足以保证系统时间正确。但是,如果您无法访问网络或 NTP 服务器,则可以将无线电控制时钟连接到系统,或使用 GPS 进行时间同步。
答案2
有很多不错的免费时间服务器,它们是 NTP 网络的一部分。我不知道 Windows 是否支持 NTP,但任何 Unix 系统(包括 Mac OSX)都应该可以使用它。
答案3
您可以使用网络时间协议 (NTP) 软件(或根据操作系统的内置功能)来更新时间。如果它支持自定义服务器,你可以找到很多,包括NIST 的 服务器(他们有自己的原子钟——具体来说是铯钟——并且是美国的官方计时员)。即使系统时钟并不完美(很少有完美的),您也可以简单地配置软件以更频繁地更新时间(例如每小时或每 10 分钟等)。
要选择更新频率,您可以禁用所有更新功能和软件,等待相当长一段时间(例如 24 小时、1 周等),然后手动触发更新并观察差异,看看它偏离了多少秒(或多少分钟)。您可以使用它来确定一个合适的间隔,这样您就可以保持系统时间正确,而无需对时间服务器进行过多、不必要的调用。
答案4
默认情况下,Windows 7 会将其时间同步到time.windows.com
(右键单击时钟,按“调整日期/时间”,然后切换到“Internet 时间”选项卡以查看此信息),而后者又会与 NIST(美国国家标准与技术研究所)同步,后者是美国“官方时间”的维护者。您可以通过 NIST Internet 时间服务直接同步到 NIST。time.nist.gov
是最知名的 NIST-ITS 服务器,但建议不要使用它,因为高负载会导致其不可靠。相反,请使用NIST-ITS 网页。我ntp-nist.ldsbc.edu
在西海岸使用(LDS 商学院提供的镜像),nist1.columbiacountyga.gov
在东海岸使用(乔治亚州哥伦比亚县政府),因为它们都是官方的 NIST-ITS 镜像,但都比较模糊,所以负载很低(= 快速且可靠的同步)。
从更技术的层面上讲,NTP 系统应该确保时间精度远低于一秒(理论精度显然在纳秒范围内,但这需要大量的时间源)。
您的确切参考取决于您的具体应用;NIST-ITS 提供的时间是美国政府官方规定的,并被大多数行业接受为标准。但是,其他高度时间同步的系统可能会按照不同的标准运行。例如,GPS 系统最初与美国海军提供的 USNO 参考时间同步,这是武装部队的标准,并且与 NIST 时间精确同步。但随着时间的推移,出现了两个差异:(1) GPS 时间不考虑闰秒,而 NIST/USNO 时间考虑闰秒,因此 GPS 时间现在落后 14 秒;(2) 由于 GPS 卫星之间的时间同步是临时的,因此它可以与 NIST/USNO 时间相差几百纳秒,这是可以接受的。我怀疑纳秒级的时间对您的应用程序是否重要,但如果您选择接收 GPS 时间,则需要补偿 14 秒的差异。别担心,GPS 系统会广播当前偏移量。更多详细信息请点击此处。
手机网络并不像人们想象的那样高度同步。手机确实从信号塔获取时间,但信号塔会维护自己的时钟,有时可能会与网络平均值偏差 1-2 分钟。我相信信号塔确实会尝试同步,但它们似乎做得不好。看看你的手机和朋友的手机,你可能会发现它们显示的时间差了几秒钟。我认为这是因为手机以有限的速度加速时间以与每个信号塔同步,以避免在你移动时出现明显的时间跳跃。
其他国家有自己的国家官方时间,通常与 NIST 时间保持良好同步(例如,我相信根据外交协议,英国标准局与 NIST 合作以保持跨洋的精确同步),但可能会有所不同。
如果你真的想玩得更有趣,NIST 确实通过他们的短波电台 WWV。这些广播可以在美国和世界大部分地区接收。当您看到“原子”挂钟等时,它们通过与此信号同步来工作。
时间不是很有趣吗?