clock_cast. Эпохи std::chrono::system_clock и std::chrono::utc_clock различаются.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpTmCc 331 of 696 menu
◀ ▶

Приведение между часами в C++

Один и тот же абсолютный момент на другие часы переводит clock_cast.

Эпохи std::chrono::system_clock и std::chrono::utc_clock различаются, поэтому простое копирование счетчика неверно. Возьмем текущий системный момент, перенесем на UTC-часы и выведем секунды с UTC-эпохи:

#include <chrono> #include <iostream> auto sys = std::chrono::system_clock::now(); auto utc = std::chrono::clock_cast<std::chrono::utc_clock>(sys); auto sec = std::chrono::time_point_cast<std::chrono::seconds>(utc); std::cout << sec.time_since_epoch().count() << "\n";

После приведения к секундам в поток идет только целый счетчик UTC-эпохи без календарного разбора.

Сохраните std::chrono::system_clock::now в auto sys_stamp. Получите std::chrono::utc_clock через std::chrono::clock_cast, сузьте до std::chrono::seconds и выведите счетчик эпохи.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить