如何在 C++ 中以毫秒为单位获取系统时间(不是自纪元以来)?

How do I get system time in millisecond in C++ (not since epoch)?

我想在 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 来测量软件中时间点之间的毫秒数,但这 不是 我想要的。我想要系统时钟的毫秒数。

添加一行:

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;

你可以试试这个

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