如何在C ++中获得毫秒级的系统时间(自纪元以来)?

时间:2019-10-15 13:59:37

标签: c++ c++11 time chrono milliseconds

我想用C ++(在Linux OS上)获得当前毫秒的系统时钟

我想要的是系统时钟的小时,分​​钟,秒和毫秒。我已经可以使用以下代码获取小时,分钟和秒:

chrono::system_clock::time_point currentTime = chono::system_clock::now();
time_t currentTime_c = chrono::system_clock::to_time_t(currentTime);
cout<<"Current time is: "<<put_time(localtime(&currentTime_c), "%T");

但是,我无法找到如何获取系统的毫秒数。

为了澄清,我已经看到人们使用chrono :: duration测量软件中时间点之间的毫秒数,但这不是我想要的。我想要系统时钟的毫秒数。

2 个答案:

答案 0 :(得分:3)

添加一行:

auto msec = chrono::duration_cast<chrono::milliseconds>(currentTime - chrono::system_clock::from_time_t(currentTime_c));

或者:

auto msec2 = chrono::duration_cast<chrono::milliseconds>(currentTime.time_since_epoch()) % 1000;

答案 1 :(得分:0)

您可以尝试

using namespace std::chrono;
milliseconds ms = duration_cast< milliseconds >(
    system_clock::now().time_since_epoch()
);