以毫秒为单位获取自纪元以来的时间无法正确输出

Getting time since epoch in milliseconds isn't outputting correctly

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

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;

}

Log输出为119682234,本应为十个字符,却只有九个字符。 Log语句中的%u不正确就这么简单吗?

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

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