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



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

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 = %unn", milliseconds_since_epoch);
    return milliseconds_since_epoch;
}

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

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

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

最新更新