D.1.3. Класс std::chrono::system_clock

Класс std::chrono::system_clock предоставляет средства для получения времени от системных часов реального времени. Текущее время возвращает функция std::chrono::system_clock::now(). Объекты класса std::chrono::system_clock::time_point можно преобразовывать в тип time_t с помощью функции std::chrono::system_clock::to_time_t() и получать из этого типа с помощью функции std::chrono::system_clock::to_time_point(). Системные часы не стабильны, поэтому последующее обращение к std::chrono::system_clock::now() может вернуть момент времени, более ранний, чем при предыдущем обращении (например, если часы операционной системы были подведены вручную или автоматически синхронизировались с внешним источником времени).

Определение класса

class system_clock {

public:

 typedef unspecified-integral-type rep;

 typedef std::ratio<unspecified, unspecified> period;

 typedef std::chrono::duration<rep, period> duration;

 typedef std::chrono::time_point<system_clock> time_point;

 static const bool is_steady = unspecified;

 static time_point now() noexcept;

 static time_t to_time_t(const time_point& t) noexcept;

 static time_point from_time_t(time_t t) noexcept;

};

STD::CHRONO::SYSTEM_CLOCK::REP , TYPEDEF

Псевдоним целочисленного типа, используемого для хранения количества тиков в интервале duration.

Объявление

typedef unspecified-integral-type rep;

STD::CHRONO::SYSTEM_CLOCK::PERIOD , TYPEDEF

Псевдоним типа для конкретизации шаблонного класса std::ratio, которая определяет наименьшее число секунд (или долей секунды) между различающимися значениями duration или time_point. Псевдоним period определяет точность часов, а не частоту тактов.

Объявление

typedef std::ratio<unspecified, unspecified> period;

STD::CHRONO::SYSTEM_CLOCK::DURATION , TYPEDEF

Конкретизация шаблонного класса std::chrono::duration, в которой может храниться разность между любыми двумя моментами времени, полученными от системных часов реального времени.

Объявление

typedef std::chrono::duration<

 std::chrono::system_clock::rep,

 std::chrono::system_clock::period> duration;

STD::CHRONO::SYSTEM_CLOCK::TIME_POINT , TYPEDEF

Конкретизация шаблонного класса std::chrono::time_point, в которой могут храниться моменты времени, полученные от системных часов реального времени.

Объявление

typedef std::chrono::time_point<std::chrono::system_clock> time_point;

STD::CHRONO::SYSTEM_CLOCK::NOW , СТАТИЧЕСКАЯ ФУНКЦИЯ-ЧЛЕН

Получает текущее время от системных часов реального времени.

Объявление

time_point now() noexcept;

Возвращаемое значение

Экземпляр time_point, представляющий текущее время по системным часам реального времени.

Исключения

Возбуждает исключение std::system_error в случае ошибки.

STD::CHRONO::SYSTEM_CLOCK::TO_TIME_T, СТАТИЧЕСКАЯ ФУНКЦИЯ-ЧЛЕН

Преобразует объект типа time_point в объект типа time_t.

Объявление

time_t to_time_t(time_point const& t) noexcept;

Возвращаемое значение

Экземпляр time_t, представляющий тот же момент времени, что и t, округленный или обрезанный до секунд.

Исключения

Возбуждает исключение std::system_error в случае ошибки.

STD::CHRONO::SYSТЕМ_CLOCK::FROM_TIME_T , СТАТИЧЕСКАЯ ФУНКЦИЯ-ЧЛЕН

Преобразует объект типа time_t в объект типа time_point.

Объявление

time_point from_time_t(time_t const& t) noexcept;

Возвращаемое значение

Экземпляр time_point, представляющий тот же момент времени, что и t.

Исключения

Возбуждает исключение std::system_error в случае ошибки.