Как получить системное время в миллисекундах в C ++ (не начиная с эпохи)? - PullRequest
0 голосов
/ 15 октября 2019

Я хотел бы получить текущие миллисекунды системных часов в C ++ (в ОС Linux).

То, что я хочу, это часы, минуты, секунды и миллисекундысистемные часы. Мне удалось получить часы, минуты и секунды с помощью следующего кода:

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 ]

3 голосов
/ 15 октября 2019

Добавить строку:

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;
0 голосов
/ 15 октября 2019

Вы можете попробовать это

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