Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Включите стандартный заголовок <chrono> , чтобы определить классы и функции, которые представляют и управляют длительностью и моментами времени.
Начиная с Visual Studio 2015 реализация steady_clock изменилась в соответствии с требованиями стандарта C++ для устойчивости и монотонности:
-
steady_clockтеперь основан наQueryPerformanceCounter() -
high_resolution_clockтеперь является типизированным дляsteady_clockреализации Microsoft C++steady_clock::time_point.typedefchrono::time_point<steady_clock>Однако это не обязательно относится к другим реализациям.
Требования
Заголовок:<chrono>
Региональные законодательные органы иногда вносят изменения в часовые пояса, а международный орган стандартов указывает, когда следует учитывать новые секунды прыжка. База данных этих изменений была добавлена в Windows 10. В частности:
| Функция | Версия клиента | Версия сервера |
|---|---|---|
| Скачивные обновления второй базы данных | Windows 10 версии 1809 или более поздней | Windows Server 2019 или более поздней версии; |
| Поддержка часового пояса | Windows 10 версии 1903/19H1 или более поздней | Windows Server 2022 или более поздней версии |
Использование средств часового пояса в старых версиях Windows приводит к ошибке среды выполнения.
Пространство имен:std
Календрические типы
| Имя | Описание |
|---|---|
Структура common_type |
Описывает специализации шаблона common_type класса для экземпляров duration и time_point. |
Класс day |
День месяца. Например, 25-й день месяца. |
Класс duration |
Интервал времени. |
Структура duration_values |
Предоставляет конкретные значения для параметра duration шаблона Rep. |
Класс hh_mm_ss |
Разделяется на duration часы:минуты:секунды. |
last_spec |
Используется для указания последнего элемента в месяц, например последний день недели месяца (последний вторник февраля 2020 г.) или последний день месяца (последний день апреля 2019 г.). |
Класс leap_second |
Дата и значение вставленного прыжка секунды. |
Структура leap_second_info |
Данные, возвращаемые get_leap_second_info. |
Класс month |
Месяц года. Например, июль. |
Класс month_day |
Определенный день определенного месяца. Например, 30 июля. |
Класс month_day_last |
Последний день месяца. |
Класс month_weekday |
Nth weekday определенного месяца. |
Класс month_weekday_last |
Nth weekday определенного месяца. |
Класс time_point |
Момент времени. |
Класс weekday |
День недели. |
Класс weekday_last |
Последний рабочий день месяца. |
Класс weekday_indexed |
Объединяет день недели с индексом, который представляет будний день месяца. |
Класс year |
Год в григорианском календаре. |
Класс year_month |
Год и месяц. День не указан. |
Класс year_month_day |
Год, месяц и день. |
Класс year_month_day_last |
Последний день определенного месяца и года. |
Класс year_month_weekday |
Определенный год, месяц и nth будний день месяца. |
Класс year_month_weekday_last |
Определенный год, месяц и последний рабочий день месяца. |
Часы
| Имя | Описание |
|---|---|
Класс file_clock |
Псевдоним часов, используемых std::filesystem::file_time_typeдля выражения меток времени файла. |
Класс gps_clock |
Часы, которые хранят время GPS. Время мер, начиная с первого воскресенья января 1980 г. в 00:00:00 UTC. |
Структура high_resolution_clock |
Часы с наносекондным периодом галочки. |
Структура local_t |
Псевдочасы, используемые в качестве аргумента time_point шаблона, указывают на то, что time_point представляет локальное время. |
Структура steady_clock |
steady Часы. Эти часы предпочтительнее для измерения интервалов времени. |
Структура system_clock |
Часы на основе часов в режиме реального времени системы. |
Класс tai_clock |
Меры международного атомарного времени (ТАЙ) начиная с четверга, 1 января 1958 года в 00:00:00. Эти часы не учитываются в секундах прыжка. |
Класс utc_clock |
Меры времени с 00:00:00 UTC в четверг, 1 января 1970 года. Эти часы учитываются в секундах прыжка и является стандартом времени, используемого по всему миру. |
Часовые пояса
| Имя | Описание |
|---|---|
choose |
Перечисление, указывающее, как разрешить неоднозначное преобразование объекта local_time в .sys_time |
local_info |
Предоставляет низкоуровневый интерфейс для сведений часового пояса о результате преобразования в local_time объект sys_time. |
sys_info |
Предоставляет низкоуровневый интерфейс для сведений часового пояса о результате преобразования в sys_time объект local_time. |
Класс time_zone |
Все переходы часового пояса для определенной географической области. |
Класс time_zone_link |
Альтернативное имя для time_zoneобъекта . |
Структура tzdb |
Представляет копию базы данных часового пояса. |
Класс tzdb_list |
Одиночный список баз данных часового пояса. |
Класс zoned_time |
Связывание time_zone a и a time_point с заданной точностью. |
Структура zoned_traits |
Используется для связывания другого часового пояса по умолчанию с zoned_timeпользовательским именем и при необходимости сопоставляется с этим часовой поясом по умолчанию. |
Исключения
| Имя | Описание |
|---|---|
ambiguous_local_time |
Ошибка, возникаемая при local_time преобразовании в объект sys_time , и результат является неоднозначным. |
nonexistent_local_time |
Ошибка, возникающая при local_time преобразовании в объект sys_time , и результатом является время, которое не существует. |
Функции
| Имя | Описание |
|---|---|
ceil(duration) |
ceil Возвращает объект в качестве указанного duration типа. |
ceil(time_point) |
ceil Возвращает объект в качестве указанного time_point типа. |
clock_cast |
Преобразуется time_point из одного часа в эквивалент time_point для другого часа. |
duration_cast |
Приводит объект duration к указанному типу. |
floor(duration) |
floor Возвращает объект в качестве указанного duration типа. |
floor(time_point) |
floor Возвращает объект в качестве указанного time_point типа. |
from_stream() |
Синтаксический анализ входного потока в одном из std::chrono типов времени или интервала, таких как day, month, weekdayyearи т. д., с использованием указанного формата. |
get_leap_second_info |
Возвращает структуруleap_second_info. |
is_am |
Указывает, hours является ли объект AM. |
is_pm |
Указывает, hours является ли объект PM. |
locate_zone |
Возвращает указанный часовой пояс. |
make12 |
Возвращает 12-часовую hours форму. |
make24 |
Возвращает 24-часовую hours форму. |
round(duration) |
duration Возвращает объект, округленный как указанный тип. |
round(time_point) |
time_point Возвращает объект, округленный как указанный тип. |
time_point_cast |
Приводит объект time_point к указанному типу. |
Часовой пояс, связанный
| Имя | Описание |
|---|---|
current_zone |
Возвращает текущий часовой пояс. |
get_tzdb |
Возвращает первую запись базы данных часового пояса. |
get_tzdb_list |
Возвращает список записей базы данных часового пояса. |
reload_tzdb |
Возвращает обновленную запись базы данных часового пояса. |
remote_version |
Проверяет наличие обновленной записи базы данных часового пояса. |
Операторы
| Имя | Описание |
|---|---|
operator- |
Вычитайте или отменяйте различные <chrono> объекты. |
operator!= |
Оператор неравенства, используемый с различными <chrono> объектами. |
operator modulo |
Оператор для операций вычисления остатка от деления над объектами duration. |
operator* |
Оператор умножения для объектов duration. |
operator/ |
Оператор деления для объектов duration. |
operator/ |
Предоставляет синтаксис для создания дат календаря. |
operator+ |
Добавьте в различные <chrono> объекты. |
operator< |
Определяет, являются ли различные <chrono> объекты меньше, чем другие. |
operator<= |
Определяет, являются ли различные <chrono> объекты меньше или равны другим. |
operator== |
Определяет, равны ли различные <chrono> объекты друг другу. |
operator> |
Определяет, являются ли различные <chrono> объекты больше другого. |
operator>= |
Определяет, являются ли различные <chrono> объекты больше или равны другим. |
Определения типов
Дополнительные сведения о типах коэффициентов, используемых в следующих типах типов, см. в разделе <ratio>.
Удобные duration типы
| Имя | Описание |
|---|---|
typedef duration<long long, nano> nanoseconds; |
Синоним для duration типа, который имеет галочку периода в один миллиард (1/1000 000 000) секунды. |
typedef duration<long long, micro> microseconds; |
Синоним для duration типа, который имеет тиковый период в один миллион (1/1000 000) секунды. |
typedef duration<long long, milli> milliseconds; |
Синоним для duration типа, который имеет тиковый период в одну тысячу (1/1000) секунды. |
typedef duration<long long> seconds; |
Синоним для duration типа, имеющего 1 секунду галочки. |
typedef duration<int, ratio<60>> minutes; |
Синоним для duration типа, который имеет период галочки в 1 минуту. |
typedef duration<int, ratio<3600>> hours; |
Синоним для duration типа, который имеет период галочки в 1 час. |
Удобные time_point типы
| Имя | Описание |
|---|---|
file_time |
Синоним для time_point<file_clock, Duration>.
time_point Представляет для file_clock. Например, Durationукажите file_time<seconds> ft;. |
gps_seconds |
Синоним gps_time<seconds>; количества секунд, представленный time_point связанным с ним gps_clock. |
gps_time |
Синоним для time_point<gps_clock, Duration>.
time_point Представляет для gps_clock. Например, Durationукажите gps_time<milliseconds> gps;. |
local_days |
Синоним для local_time<days>. Количество дней, представленное не time_point связанным с часовыми поясами. |
local_seconds |
Синоним для local_time<seconds>. |
local_time |
Синоним для time_point<local_t, Duration>.
time_point Представляет собой локальное время, которое еще не связано с часовым поясом. Например, Durationукажите local_time<seconds> lt;. А local_time — это местное время где-то. Это не текущее локальное время часов компьютера. Только если вы связываете с local_time ним time_zone точку во времени, которую можно преобразовать в время UTC, или время в определенном часовом поясе. |
sys_days |
Синоним для sys_time<days>. Число дней с эпохи system_clock, представленной time_point тем, что связано с .system_clock |
sys_seconds |
Синоним для sys_time<seconds>. Количество непрысковых секунд с эпохи system_clock (1 января 1970 г. 00:00 UTC), представленное time_point тем, что связано с system_clock. |
sys_time |
Синоним для time_point<system_clock, Duration>. Например, Durationукажите sys_time<seconds> st;.
time_point Представляет возвращаемый объектsystem_clock::now(). Он представляет время Unix, которое близко приближается к времени UTC. |
tai_seconds |
Синоним для tai_time<seconds>. Количество секунд, представленное time_point связанным с ним tai_clock. |
tai_time |
Синоним для time_point<tai_clock, Duration>. Например, Durationвы предоставляете tai_time<seconds> tt;.
time_point Представляет для tai_clock. |
utc_seconds |
Синоним для utc_time<seconds>; |
utc_time |
Синоним для time_point<utc_clock, Duration>. Например, Durationвы предоставляете utc_time<seconds> ut;.
time_point Представляет для utc_clock. |
Признаки типов
| Имя | Описание |
|---|---|
clock_time_conversion |
Признак, указывающий, как преобразовать time_point часы из одного часа в другой. |
| is_clock | Проверьте, является ли тип часов. |
| treat_as_floating_point | Проверьте, можно ли преобразовать объект duration в другой duration , имеющий другой период галочки. |
Литералы
(C++11) Заголовок <chrono> определяет следующие пользовательские литералы , которые можно использовать для повышения удобства, безопасности типов и удобства обслуживания кода. Эти литералы определяются в встроенном literals::chrono_literals пространстве имен и находятся в области, когда std::chrono находится в области.
| Объявление | Описание |
|---|---|
hours operator "" h(unsigned long long Val) |
Указывает часы как целочисленное значение. |
duration<double, ratio<3600>> operator "" h(long double Val) |
Указывает часы как значение с плавающей запятой. |
minutes (operator "" min)(unsigned long long Val) |
Указывает минуты как целочисленное значение. |
duration<double, ratio<60>> (operator "" min)( long double Val) |
Указывает минуты как значение с плавающей запятой. |
seconds operator "" s(unsigned long long Val) |
Указывает минуты как целочисленное значение. |
duration<double> operator "" s(long double Val) |
Указывает секунды как значение с плавающей запятой. |
milliseconds operator "" ms(unsigned long long Val) |
Указывает миллисекунды как целочисленное значение. |
duration<double, milli> operator "" ms(long double Val) |
Указывает миллисекунды как значение с плавающей запятой. |
microseconds operator "" us(unsigned long long Val) |
Указывает микросекунды как целочисленное значение. |
duration<double, micro> operator "" us(long double Val) |
Указывает микросекунды как значение с плавающей запятой. |
nanoseconds operator "" ns(unsigned long long Val) |
Указывает наносекунды как целочисленное значение. |
duration<double, nano> operator "" ns(long double Val) |
Указывает наносекунды как значение с плавающей запятой. |
В следующих примерах показано, как использовать <chrono> литералы:
constexpr auto day = 24h;
constexpr auto week = 24h* 7;
constexpr auto my_duration_unit = 108ms;