为何选择GetLocalTime(& sys);显示奇怪的结果?

时间:2015-11-12 05:54:26

标签: c++ winapi time

我想实时获取当地时间。代码和结果如下,显示奇怪;

int main() {
    while (true) {
        char sentdata[64] = { 0 };
        GetLocalTime(&sys);
        sprintf(sentdata, "A,%02d:%02d:%02d.%03d,B\n", sys.wHour, sys.wMinute, sys.wSecond, sys.wMilliseconds);

        cout << sentdata << endl;
    }
    return 0;
}

enter image description here

我在其他PC上尝试了相同的代码,结果显示如下,它可以显示每毫秒。

enter image description here

为什么某些循环中的tmie相同?我认为每个循环的时间应该不同。

2 个答案:

答案 0 :(得分:5)

这是Windows系统上的典型计时行为,即使使用高分辨率时钟:时间仅会增加约16毫秒的跳跃。

要在Windows上准确计时,请参阅this answer

答案 1 :(得分:1)

您的代码以纳秒为单位运行,而输出则以毫秒为单位。