将计算机时间与互联网时间服务器同步的最佳方式是啥?

Posted

技术标签:

【中文标题】将计算机时间与互联网时间服务器同步的最佳方式是啥?【英文标题】:What is the best way to sync computer time with an internet time server?将计算机时间与互联网时间服务器同步的最佳方式是什么? 【发布时间】:2010-08-17 14:05:52 【问题描述】:

我需要从我的桌面应用程序中的一个互联网时间服务器获取当前时间。我想我需要像请求字符串和正则表达式这样的东西来从用户想要的任何站点(可能是几个预定义的站点)获取时间。

或者可能有一些免费的图书馆存在?

谢谢。

【问题讨论】:

【参考方案1】:

这就是 Network Time Protocol 的用途。但这可能最好留给您的操作系统,以免您最终使用不同的、不完全同步的服务器来决斗应用程序。

有关 UNIX 和 Windows 实现,请参阅上面链接中的标题。

【讨论】:

【参考方案2】:

有免费的库关于如何检索时间的规范,以及您接收时间的格式(因此通常不需要 RE)。您的选择取决于您想要的精度/准确度级别。

RFC 868 给第二个时间,这对于很多人的目的来说完全足够了。如果它足够好,它很多比下面列出的其他方法更容易实现。RFC 5905 定义了网络时间协议。只要您只想获取时间,而不是为其他任何人提供时间,NTP 可能就有点过头了。RFC 4330 定义了 SNTP(简单 NTP),它是充当“叶节点”的计算机的 NTP - 即它们从其他地方检索时间,但没有其他任何东西从它们检索时间。

The NTP project 为许多系统提供免费的 NTP 库。

【讨论】:

【参考方案3】:

这感觉就像操作系统应该自己做的事情......

互联网上有一个称为 NTP 的协议,可以从时间服务器返回时间。

您可能想尝试寻找可以使用 NTP 为您检索时间的库/类。

或者您可以尝试查看ntpclient 的源代码。

【讨论】:

【参考方案4】:

通常,大多数操作系统都嵌入了这样的功能。

Windows 和 Linux 都可以与 NTP 服务器同步。

如果真的想让用户更改其时区,您应该寻找特定于操作系统的 API,而不是直接与时间服务器通信然后更改系统时间。这会方式更好。

【讨论】:

【参考方案5】:

也许你可以看看这段代码并获得一些灵感:

http://web.abnormal.com/~thogard/ntp/ntpdate.c

【讨论】:

以上是关于将计算机时间与互联网时间服务器同步的最佳方式是啥?的主要内容,如果未能解决你的问题,请参考以下文章

将序列与 CloudKit 同步的最佳方法是啥?

将本地 SQL Server 数据库同步到 Azure Windows Server SQL Server 的最佳方式是啥

在线程之间传递信息的最佳方式是啥?

Python 脚本与将内容传输到客户端的 Python Flask 服务器通信的最佳方式是啥?

与 MySQL 服务器通信的最佳方式是啥?

Apple Watch 与 iPhone 通信的最佳方式是啥? [关闭]