Класс utc_clock
Часы для универсального времени (UTC), который иногда часто называется средним временем Гринвича (GMT) или Zulu. Местное время корректируется с времени UTC в зависимости от часового пояса.
Синтаксис
class utc_clock; // C++20
Замечания
Это время измеряет время с 00:00:00 UTC в четверг, 1 января 1970 года. Эти часы учитывают високосные секунды и является основой для гражданского времени по всему миру.
Скорость времени UTC основана на международном атомарном времени (TAI), который использует атомарные часы для отслеживания времени. Однако время от времени скачка добавляется в время UTC, чтобы сохранить разницу между временем UTC и UT1 (солнечное время) в пределах +- 0,9 секунды.
Существует расхождение между временем, хранимым атомарными часами, и временем, сохраняемым путем отслеживания поворота земли. Это потому, что скорость вращения земли нерегулярна, и в целом замедляется со временем примерно на одну секунду каждые 1,5 года (хотя иногда скорость вращения земли увеличивается). Скачок второй корректировки сохраняет время отслеживания в формате UTC в течение секунды средней длины дня.
По состоянию на этот текст, 27 секунд високосных секунд были добавлены после того, как практика вставки вискочие секунды началась в 1972 году. Международная служба поворота земли и эталонных систем (IERS) определяет, когда будет добавлен скачок секунды. Добавление прыжка секунды называется "скачок второй вставки". Когда впрыжок вставляется, время, как оно приближается к полуночи, продолжается с 23 часов 59 минут 59 секунд до 23 часов 59 минут 60 секунд (вставленный прыжок второй), а затем до 0 часов 0 минут 0 секунд (полночь). Исторически с 30 июня или 31 декабря были добавлены секунды прыжков.
Время UTC, по определению, начинается от 10 секунд после ТАЙ (атомарного времени). 10 секунд были добавлены в 1972 году в тайм тайм для размещения за секунды прыжка, которые накапливались к этому моменту. Учитывая вставку еще 27 секунд скачка с тех пор, время UTC в настоящее время составляет 37 секунд за тайм (атомарные часы).
Участники
Имя | Описание |
---|---|
from_sys |
Статическая. Преобразует sys_time в utc_time . |
now |
Статическая. Возвращает текущее время. |
to_sys |
Статическая. Преобразует utc_time в sys_time . |
Не являющиеся членами
Имя | Описание |
---|---|
from_stream |
Синтаксический utc_time анализ из заданного потока с помощью указанного формата. |
get_leap_second_info |
Получает leap_second_info, указывающий, указывает, указывает ли указанное время при вставке прыжка в секунду. Она также включает в себя сумму всех секунд вискочи в период с 1 января 1970 года и указанной продолжительностью. |
operator<< |
Выводит объект в заданный utc_time поток. |
Псевдонимы удобных типов
Имя | Описание |
---|---|
utc_clock::duration |
В реализации Корпорации Майкрософт это синоним duration<system_clock::rep, system_clock::period> . Он представляет длительность времени, измеряемого в единицах 100 наносекунд. |
utc_clock::period |
Реализация Майкрософт определяет это как синоним system_clock::period . Он представляет время в секундах (100 наносекунд) между каждым тиком в течение длительности. |
utc_clock::rep |
Синоним типа (long long ), используемый для представления целочисленных единиц в этом часовом режиме utc_clock::duration . |
utc_clock::time_point |
Синоним для time_point<utc_clock> . Используется для представления time_point часов. |
Родственный
Имя | Описание |
---|---|
utc_seconds |
Синоним для using utc_seconds = utc_time<seconds>; |
utc_time |
Синоним template<class Duration> using utc_time = time_point<utc_clock, Duration>; для представления time_point для utc_clock . Укажите длительность. Определено в std::chrono |
Открытые константы
Имя | Описание |
---|---|
[utc_clock::is_steady constant] (#is_steady_constant) |
Указывает, является ли тип часов устойчивым. Его значение равно false . |
Требования
Заголовок: <chrono>
(с C++20)
Пространство имен: std::chrono
Параметр компилятора: /std:c++latest
from_sys
Статический метод, который преобразуется sys_time
в объект utc_time
.
template<class Duration>
static utc_time<common_type_t<Duration, seconds>>
from_sys(const sys_time<Duration>& t);
Параметры
t
Объект sys_time
для преобразования.
Возвращаемое значение
Набор utc_time
времени, который наиболее близко приближается sys_time
t
к . Если прямое сопоставление не существует, возвращается time_point во время прыжковой второй вставки и последнее представляющее значение sys_time
до вставки секунды прыжка.
to_sys
Статический метод, который преобразуется utc_time
в объект sys_time
.
template<class Duration>
static sys_time<common_type_t<Duration, seconds>>
to_sys(const utc_time<Duration>& t);
Параметры
t
Объект utc_time
для преобразования.
Возвращаемое значение
Значение sys_time
равно эквивалентной точке во времени t
. Если прямое сопоставление не существует, это последнее представляющее значение перед вставкой прыжка секунды в случае, представляющего t
точку во времени вставки секунды прыжка. Добавление прыжка секунды называется "скачок второй вставки". Когда вставить прыжок секунду, время, когда оно почти полуночи продолжается с 23 часов 59 минут 59 секунд до 23 часов 59 минут 60 секунд (вставленный прыжок второй), а затем до 0 часов 0 минут 0 секунд (полночь). В прошлом секунды прыжка были добавлены либо 30 июня, либо 31 декабря.
is_steady
Статическое значение, указывающее, являются ли часы постоянными. В реализации is_steady_constant
Корпорации Майкрософт используется false
. utc_clock
Так как он не является устойчивым, вы не можете надежно использовать эти часы, чтобы занять время до события, время после события и вычитать их, чтобы получить длительность события, так как часы могут быть скорректированы в течение этого времени.
static const bool is_steady = false;
now
Статический метод, возвращающий текущее время в формате UTC. Возвращаемое время включает в себя секунды прыжка.
static time_point now() noexcept;
Возвращаемое значение
Объект time_point
, представляющий текущее время. Возвращаемая точка времени фактически from_sys(system_clock::now())
.
См. также
<chrono>
file_clock class
gps_clock class
high_resolution_clock
Структура local_t
Структура steady_clock
Структура system_clock
Класс tai_clock
Справочник по файлам заголовков