如何在Linux中获得正确的时间

时间:2013-03-27 11:30:02

标签: c linux datetime time

目前我可以通过localtime()

gettimeofday() time.h等功能获取当前日期时间

假设用户修改Linux中的日期和时间设置以将日期更改为某个上一个日期,我在调用上述函数时会收到这些更改。

我仍然希望获得当前时间,即今天的时间,无论用户是否更改了系统日期和时间。时间设置。

有什么方法可以实现同样的目标吗?

3 个答案:

答案 0 :(得分:8)

就您的计算机而言,系统时间 当前时间。

如果您无法信任所使用的系统以提供准确的时间,则可能需要考虑在程序中嵌入NTP client

答案 1 :(得分:2)

如果具有适当权限的用户更改了系统时间,则系统会相信新值。

因此,唯一能让别人看到正确时间的方法就是走出系统。例如,您可以通过NTP协议连接到时间服务器。

为了获得廉价而愉快的解决方案,您可以获取http://www.whattimeisit.com/等网页。当然,下载的延迟(最好)是不准确的,这是NTP客户巧妙处理的事情之一。

如果您想要的不是“正确”时间,只是在您使用它时不会跳转的时间,那么您可以查看clock_gettime并特别{{1} }。

答案 2 :(得分:0)

如果它没有与系统时间同步,你可以考虑阅读硬件时钟,看看hwclock man page

该页面上的备注部分提供了有关如何检查同步的一些信息。