Подтвердить что ты не робот

С++ хронологическое время в миллисекундах, временные операции

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

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

Я пробовал:

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

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

4b9b3361

Ответ 1

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

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