从纪元开始获取时间(以毫秒为单位)无法正确输出

时间:2016-09-08 00:17:26

标签: c++11 time milliseconds chrono system-clock

我已经在这个论坛上使用了其中一个答案的代码,但这似乎不正确。我不知道这是代码还是我记录它的方式。

unsigned long long int NQCTestInstance::getCurrentTimeInMs() {

    unsigned long milliseconds_since_epoch =
        std::chrono::duration_cast<std::chrono::milliseconds>
        (std::chrono::system_clock::now().time_since_epoch()).count();

    Log("Timestamp = %u\n\n", milliseconds_since_epoch);

    return milliseconds_since_epoch;

}

日志输出为119682234,当它应为10时,只有9个字符。这是否与Log语句中的%u 一样简单?

1 个答案:

答案 0 :(得分:0)

@Igor Tandetnik和@John Zwinck走在正确的轨道上。

我将所有内容更改为unsigned long long,然后使用%llu(不是%lu)进行日志记录。

感谢您的帮助