std::chrono::system_clock с поясом процесса связывает zoned_time: пояс возвращает std::chrono::current_zone.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpTmLt 330 of 696 menu
◀ ▶

Локальное время в C++

Момент std::chrono::system_clock с поясом процесса связывает zoned_time: пояс возвращает std::chrono::current_zone.

Локальное представление берут через get_local_time у готового zoned_time: это тот же абсолютный момент, но в шкале пояса пользователя. Запишем связку и выведем секунды с эпохи локального момента:

#include <chrono> #include <iostream> auto now = std::chrono::system_clock::now(); std::chrono::zoned_time zone_now{ std::chrono::current_zone(), now}; auto local = zone_now.get_local_time(); auto sec = std::chrono::time_point_cast<std::chrono::seconds>(local); std::cout << sec.time_since_epoch().count() << "\n";

Число в потоке - счетчик секунд локальной шкалы; для работы поясов среде может понадобиться база IANA, но сами вызовы остаются такими в C++20.

Постройте std::chrono::zoned_time из std::chrono::current_zone и std::chrono::system_clock::now. Возьмите get_local_time, приведите к std::chrono::seconds и выведите time_since_epoch.count.

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