1

我需要获得毫秒精度我看一下这个问题,但我正在使用 Windows:它给出了 POSIX 函数的链接错误。

如果我能以毫秒精度获得 1970 年以来的 UTC 时间,那就太好了。

4

3 回答 3

3

不在 ANSI C 中,但 Windows API 提供了GetSystemTime如下所示的函数:http: //msdn.microsoft.com/en-us/library/ms724950 (v=VS.85).aspx

于 2010-06-29T06:23:14.830 回答
1

抱歉,您既不能使用 ANSI C 也不能使用 Windows API。

可以使用 GetSystemTime获得毫秒分辨率的系统时间,或使用 GetSystemTimeAsFileTime 获得 100 纳秒分辨率的系统时间,但精度不会那么好。系统时间仅在每个时钟间隔更新,大约 10-15 毫秒,具体取决于底层架构(SMP、单处理器……)。

有一些方法可以使用不同复杂度的不同算法来推断系统时间,但是如果没有操作系统的支持,您将永远无法保证正确的高分辨率时钟时间。

于 2010-06-29T06:55:11.647 回答
0

在 windows api 中有一个 SYSTEMTIME 结构和一些系统调用来获取您机器的系统时间和本地时间,您可以通过这种方式实现它:

SYSTEMTIME 系统时间;

获取系统时间(&systime);

无符号整数毫秒 = systime.wMilliseconds;

于 2010-06-29T06:49:46.470 回答