This question already has answers here:
Capturing a time in milliseconds

(7个答案)


5年前关闭。




首先我不想使用#include <ctime>time(0); time(0);与ctime有关。我想要的是,如果说时间是10:13:40:23 AM,我将得到23的值。我在网上浏览了一会儿,除了ctime之外什么都找不到,但是ctime是系统时间(以毫秒为单位)表示该值确实很高。另一个示例是12:56:30:192 PM,我将得到192的值。谢谢您的帮助:)。

最佳答案

在C++ 11中,使用std::chrono库。

#include <iostream>
#include <chrono>

int main()
{

    auto now = std::chrono::system_clock::now();

    std::chrono::milliseconds ms_since_epoch = std::chrono::duration_cast< std::chrono::milliseconds >(now.time_since_epoch());
    std::chrono::seconds seconds_since_epoch = std::chrono::duration_cast< std::chrono::seconds >(now.time_since_epoch());

    std::cout << (ms_since_epoch - seconds_since_epoch).count() << std::endl;

    return 0;
}

如果以秒为单位,则取1000为模将与减去秒相同。
无论如何,考虑到纪元是规范的(秒数为00,毫秒数为000),所以该部分的确是当前时刻的实际毫秒数。

10-07 17:21