Поделиться через


Класс tai_clock

Эти часы сообщают о международном атомарном времени с 00:00:00 в четверг, 1 января 1958 года. Эти часы не учитываются в секундах прыжка.

Синтаксис

class tai_clock; // C++20

Замечания

Эти часы сообщают о Международном атомном времени (ТАЙ, из французских temps atomique international). Международное атомарное время использует взвешенный средний показатель многих атомарных часов для отслеживания времени.

Время, сохраненное таймами ТАЙ, отличается от времени UTC. Разница заключается в том, что скачок секунды иногда добавляется в время UTC, чтобы сохранить разницу между временем UTC и UT1 (солнечное время) в пределах +- 0,9 секунд друг от друга. Расхождение постепенно накапливается между временем, хранимым атомарными часами, и временем, сохраняемым измерением поворота земли. Несоответствие возникает, потому что скорость вращения земли нерегулярна. Он замедляется со временем примерно на одну секунду каждые 1,5 года, думал, что он также иногда ускоряется. Тайм не отслеживает это несоответствие. По состоянию на эту запись время ТАЙ составляет 37 секунд до времени UTC. Это связано с первоначальной разницей в 10 секунд в начале 1972 года, а также секунды прыжка, которые были вставлены с 1972 года.

Эпоха часов, или дата и время, с которого начинается измерение времени, — это 1958-01-01 00:00:00.

Участники

Имя Описание
from_utc Статическая. Преобразует utc_time в tai_time.
now Статическая. Возвращает текущее международное атомное время.
to_utc Статическая. tai_time Преобразуется в utc_time.

Не являющиеся членами

Имя Описание
from_stream Синтаксический tai_clock анализ из заданного потока с помощью указанного формата.
get_leap_second_info Получение сведений о том, указывает ли указанное время время вставки впрыска в секунду, а также сумму всех секунд вискочи в период с 1 января 1970 г. и указанной продолжительностью.
operator<< Выводит объект в заданный tai_time поток.

Псевдонимы удобных типов

Имя Описание
tai_clock::duration В реализации Корпорации Майкрософт это синоним duration<long long, ratio<1, 10'000'000>. Он представляет длительность времени, измеряемого в единицах 100 наносекунд.
tai_clock::period В реализации Корпорации Майкрософт это синоним ratio<1, 10'000'000>. Он представляет время в секундах (100 наносекунд) между каждым тиком в течение длительности.
tai_clock::rep Синоним типа (long long), используемый для представления целочисленных единиц в этом часовом режиме tai_clock::duration.
tai_clock::time_point Синоним для time_point<tai_clock>. Используется для представления time_point часов.

Родственный

Имя Описание
tai_time Синоним для template <class Duration> using tai_time = time_point<tai_clock, Duration>. time_point Представляет для tai_clock. Укажите Duration. Определено в std::chrono
tai_seconds Синоним using tai_seconds = tai_time<seconds> количества секунд, представленный time_point связанным с ним tai_clock. Определено в std::chrono

Общедоступные константы

Имя Описание
tai_clock::is_steady constant Указывает, является ли тип часов устойчивым. Его значение равно false.

Требования

Заголовок: <chrono> (с C++20)

Пространство имен: std::chrono

Параметр компилятора: /std:c++latest

from_utc

Статический метод, который преобразуется utc_time в объект tai_time.

template <class Duration>
static tai_time<common_type_t<Duration, seconds>>
from_utc(const utc_time<Duration>& t) noexcept;

Параметры

t
Объект utc_time для преобразования.

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

Значение, tai_time представляющее эквивалент utc_time t. Это вычисляется, забирая время с эпохи часов UTC и добавляя 378691210s где 378691210s == sys_days{1970y/January/1} - sys_days{1958y/January/1} + 10s

to_utc

Статический метод, который преобразуется tai_time в объект utc_time.

template<class Duration>
static utc_time<common_type_t<Duration, seconds>>
to_utc(const tai_time<Duration>& t) noexcept;

Параметры

t
Объект tai_time для преобразования.

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

Значение, utc_time представляющее эквивалент tai_time t. Вычисляется как utc_time<common_type_t<Duration, seconds>>{t.time_since_epoch()} - 378691210s где 378691210s == sys_days{1970y/January/1} - sys_days{1958y/January/1} + 10s

is_steady

Статическое значение, указывающее, являются ли часы постоянными. В реализации is_steady_constant Майкрософт используется false. Так как tai_clock не является устойчивым, вы не можете использовать эти часы, чтобы занять время до события, время после события и вычитать их, чтобы получить длительность события, так как часы могут быть скорректированы в течение этого времени.

static const bool is_steady = false;

now

Статический метод, возвращающий текущее время ТАЙ.

static time_point now() noexcept;

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

Объект time_point , представляющий текущее время. Возвращаемая точка времени фактически from_utc(utc_clock::now()).

См. также

<chrono>
file_clock class
high_resolution_clock
Структура local_t
Структура steady_clock
Структура system_clock
Класс utc_clock
Справочник по файлам заголовков