C ++ хронографическое системное время в миллисекундах, время операций - PullRequest
52 голосов
/ 01 февраля 2012

У меня небольшая проблема, вызванная недостаточной документацией по C ++ 11.

Я хотел бы получить время с эпохи в миллисекундах, или наносекундах или секундах, и тогда мне придется "приведите это значение в другое разрешение.Я могу сделать это с помощью gettimeofday (), но это будет легко, поэтому я попытался добиться этого с помощью std :: chrono.

Я попытался:

std::chrono::time_point<std::chrono::system_clock> now = 
    std::chrono::system_clock::now();

Но я понятия не имеюКакое разрешение получено таким образом time_point, и я не знаю, как получить это время как простой беззнаковый лонг, и я не представляю, как привести его к другому разрешению.

1 Ответ

92 голосов
/ 01 февраля 2012

Вы можете сделать now.time_since_epoch(), чтобы получить длительность, представляющую время с начала эпохи, с разрешением часов .Для перевода в миллисекунды используйте duration_cast:

auto duration = now.time_since_epoch();
auto millis = std::chrono::duration_cast<std::chrono::milliseconds>(duration).count();
...