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


<chrono>Функции

abs(duration)

Возвращает значение d , если d >= d.zero(); в противном случае возвращается -d.

Синтаксис

template <class Rep, class Period>
constexpr duration<Rep, Period> abs(duration<Rep, Period> d ); // C++17

Параметры

Rep
Тип внутреннего представления источника duration d.

Period
std::ratio Тип, представляющий отношение одного секунды к исходному Rep типу (то есть секунда в секундуRep).

d
Исходный объект duration.

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

Абсолютное значение параметра d.

Пример: abs(duration)

// compile using: /std:c++latest
#include <chrono>
#include <iostream>

int main()
{
    std::cout << abs(-24h);
    return 0;
}
24h

ceil(duration)

Возвращает наименьшее представление duration в целевом типе, который больше или равен указанному.duration

Синтаксис

template<class ToDuration, class Rep, class Period>
constexpr ToDuration
ceil(const duration<Rep, Period>& d);  // C++17

Параметры

ToDuration
Тип целевого объекта duration . Ограниченное в качестве специализации duration.

Rep
Тип внутреннего представления источника duration d.

Period
std::ratio Тип, представляющий отношение одного секунды к исходному Rep типу (то есть секунда в секундуRep).

d
Исходный объект duration.

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

Возвращает наименьшее duration представление, ToDuration которое больше или равно параметру d.

Замечания

ceil не участвует в разрешении перегрузки, если ToDuration тип не является экземпляром durationобъекта.

ceil(time_point)

Возвращает наименьшую точку времени, представляющуюся в целевом объекте duration , который больше или равен заданной точке времени.

Синтаксис

template<class ToDuration, class Clock, class Duration>
constexpr time_point<Clock, ToDuration>
ceil(const time_point<Clock, Duration>& t);  // C++17

Параметры

ToDuration
Тип целевого объекта duration . Ограниченное в качестве специализации duration.

Clock
Распространенный тип часов результата и исходного параметра tp.

Duration
Тип duration tp.

tp
Исходный объект time_point.

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

Возвращает наименьшую точку времени, представляющуюся с помощью ToDuration этого значения больше или равно tp. Фактически, time_point<Clock, ToDuration>(ceil<ToDuration>(tp.time_since_epoch()));.

Замечания

ceil не участвует в разрешении перегрузки, если ToDuration тип не является экземпляром durationобъекта.

clock_cast

Преобразует time_point один час в эквивалент time_point для другого часа.

Синтаксис

template <class DestClock, class SourceClock, class Duration> 
auto clock_cast(const time_point<SourceClock, Duration>& t); // C++20

Параметры

DestClock
Тип часов для преобразования time_point в.

Duration
Указанный duration объект или указанный SourceClockобъект.

SourceClock
Тип часов, на основе преобразования time_point .

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

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

Эквивалентно time_point t, но конкретно к DestClock.

Замечания

Параметры SourceClock и Duration могут быть выведены с помощью вычета аргументов шаблона класса при явном передаче. Например, учитываяclock_cast<utc_clock>(file_clock::now())SourceClock, выводится значение file_clockDuration и выводится в качестве file_clock::durationзначения.

В следующем списке хорошо сформированных преобразований часов выбран один из самых немногих шагов SourceClock DestClock преобразования.

clock_time_conversion<DestClock, SourceClock>{}(t)

clock_time_conversion<DestClock, system_clock>{}(
	clock_time_conversion<system_clock, SourceClock>{}(t))

clock_time_conversion<DestClock, utc_clock>{}(
	clock_time_conversion<utc_clock, SourceClock>{}(t))

clock_time_conversion<DestClock, utc_clock>{}(
	clock_time_conversion<utc_clock, system_clock>{}(
		clock_time_conversion<system_clock, SourceClock>{}(t)))

clock_time_conversion<DestClock, system_clock>{}(
	clock_time_conversion<system_clock, utc_clock>{}(
		clock_time_conversion<utc_clock, SourceClock>{}(t)))

Дополнительные сведения о том, что clock_time_conversion делает, см clock_time_conversion . в структуре.

Пример: clock_cast.

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    utc_clock::time_point t = clock_cast<utc_clock>(file_clock::now());
    std::cout << t;

    return 0;
}
2021-10-11 22:58:17.8540720

current_zone

Возвращает текущий объект часового пояса.

Синтаксис

const time_zone* current_zone();  // C++20

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

Возвращает указатель на указатель time_zone , как если бы вызов get_tzdb().current_zone(). Он создает runtime_error исключение, если это первая ссылка на базу данных часового пояса, а база данных часового пояса не может быть инициализирована.

duration_cast

Приведение duration к указанному целевому duration типу.

Синтаксис

template <class ToDuration, class Rep, class Period>
constexpr ToDuration
duration_cast(const duration<Rep, Period>& d);  // C++11

Параметры

ToDuration
Тип целевого объекта duration . Ограниченное в качестве специализации duration.

Rep
Тип внутреннего представления источника duration d.

Period
std::ratio Тип, представляющий отношение одного секунды к исходному Rep типу (то есть секунда в секундуRep).

d
Исходный duration объект для приведения к целевому duration типу.

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

Объект типа ToDuration , представляющий duration dобъект . При необходимости он усечен в целевой тип. Результат приведения с плавающей запятой duration к целочислению duration не определен, если источник содержит NaN, бесконечность или слишком большой для представления в целевом объекте duration.

Замечания

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

duration_cast не участвует в разрешении перегрузки, если ToDuration только не является экземпляром duration. Все преобразования static_cast используются вместо неявных преобразований. При возможности избежать умножения и деления. Например, когда компилятор знает, что общее соотношение целевых и исходных периодов имеет числитель или знаменатель 1. Вычисления выполняются в самом широком типе, а затем преобразуются в static_cast тип результата по завершении.

Пример: duration_cast.

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    seconds s(1);
    std::cout << duration_cast<microseconds>(s) << '\n';
    std::cout << duration_cast<nanoseconds>(s) << '\n';

    return 0;
}
1000000us
1000000000ns

floor(duration)

Возвращает наибольшее представление duration в целевом типе, который меньше или равен указанному duration.

Синтаксис

template<class ToDuration, class Rep, class Period>
constexpr ToDuration
floor(const duration<Rep, Period>& d);  // C++17

Параметры

ToDuration
Тип целевого объекта duration . Ограниченное в качестве специализации duration.

Rep
Тип внутреннего представления источника duration d.

Period
std::ratio Тип, представляющий отношение одного секунды к исходному Rep типу (то есть секунда в секундуRep).

d
Исходный объект duration.

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

Возвращает наибольшее duration представление, которое меньше ToDuration или равно параметру d.

Замечания

floor не участвует в разрешении перегрузки, если ToDuration тип не является экземпляром durationобъекта.

floor(time_point)

Возвращает самую большую точку времени, представляющуюся в целевом объекте duration , который меньше указанной точки времени или равен ей.

Синтаксис

template<class ToDuration, class Clock, class Duration>
constexpr time_point<Clock, ToDuration>
floor(const time_point<Clock, Duration>& tp);  // C++17

Параметры

ToDuration
Тип целевого объекта duration . Ограниченное в качестве специализации duration.

Clock
Распространенный тип часов результата и исходного параметра tp.

Duration
Тип duration tp.

tp
Исходный объект time_point.

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

Возвращает самую большую точку времени, представляющуюся с помощью ToDuration меньше или равной tp. Фактически, time_point<Clock, ToDuration>(floor<ToDuration>(tp.time_since_epoch()));.

Замечания

floor не участвует в разрешении перегрузки, если ToDuration тип не является экземпляром durationобъекта.

from_stream

Синтаксический анализ входного потока в один из std::chrono типов времени или интервала, таких как day, month, month_day, year_monthweekdayyearyear_month_day, и т. д., с использованием указанного формата.

Если синтаксический анализ завершается ошибкой, is.setstateвызывается (ios_base::failbit) и выходной параметр не изменяется.

// 1) day - C++20
template<class charT class traits, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
    basic_istream<charT, traits>& is, const charT* fmt,
    day& d, basic_string<charT, traits, Alloc>* abbrev = nullptr,
    minutes* offset = nullptr);

// 2) duration - C++20
template<class charT, class traits, class Rep, class Period, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
    basic_istream<charT, traits>& is, const charT* fmt,
    duration<Rep, Period>& dur, basic_string<charT, traits, Alloc>* abbrev = nullptr,
    minutes* offset = nullptr);

// 3) file_time - C++20
template<class charT, class traits, class Duration, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
    basic_istream<charT, traits>& is, const charT* fmt,
    file_time<Duration>& ft, basic_string<charT, traits, Alloc>* abbrev = nullptr,
    minutes* offset = nullptr);

// 4) gps_time - C++20
template<class charT, class traits, class Duration, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
    basic_istream<charT, traits>& is, const charT* fmt,
    gps_time<Duration>& gt, basic_string<charT, traits, Alloc>* abbrev = nullptr,
    minutes* offset = nullptr);

// 5) local_time - C++20
template<class charT, class traits, class Duration, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
    basic_istream<charT, traits>& is, const charT* fmt,
    local_time<Duration>& lt, basic_string<charT, traits, Alloc>* abbrev = nullptr,
    minutes* offset = nullptr);

// 6) month - C++20
template<class charT, class traits, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
    basic_istream<charT, traits>& is, const charT* fmt,
    month& m, basic_string<charT, traits, Alloc>* abbrev = nullptr,
    minutes* offset = nullptr);

// 7) month_day - C++20
template<class charT, class traits, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
    basic_istream<charT, traits>& is, const charT* fmt,
    month_day& md, basic_string<charT, traits, Alloc>* abbrev = nullptr,
    minutes* offset = nullptr);

// 8) utc_time  - C++20
template<class charT, class traits, class Duration, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
    basic_istream<charT, traits>& is, const charT* fmt,
    utc_time<Duration>& ut, basic_string<charT, traits, Alloc>* abbrev = nullptr,
    minutes* offset = nullptr);

// 9) sys_time - C++20
template<class charT, class traits, class Duration, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
    basic_istream<charT, traits>& is, const charT* fmt,
    sys_time<Duration>& st, basic_string<charT, traits, Alloc>* abbrev = nullptr,
    minutes* offset = nullptr);

// 10) tai_time - C++20
template<class charT, class traits, class Duration, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
    basic_istream<charT, traits>& is, const charT* fmt,
    tai_time<Duration>& tt, basic_string<charT, traits, Alloc>* abbrev = nullptr,
    minutes* offset = nullptr);

// 11) weekday - C++20
template<class charT, class traits, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
    basic_istream<charT, traits>& is, const charT* fmt,
    weekday& wd, basic_string<charT, traits, Alloc>* abbrev = nullptr,
    minutes* offset = nullptr);

// 12) year - C++20
template<class charT, class traits, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
    basic_istream<charT, traits>& is, const charT* fmt,
    year& y, basic_string<charT, traits, Alloc>* abbrev = nullptr,
    minutes* offset = nullptr);

// 13) year_month - C++20
template<class charT, class traits, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
    basic_istream<charT, traits>& is, const charT* fmt,
    year_month& ym, basic_string<charT, traits, Alloc>* abbrev = nullptr,
    minutes* offset = nullptr);

// 14) year_month_day - C++20
template<class charT, class traits, class Alloc = allocator<charT>>
basic_istream<charT, traits>&
from_stream(
    basic_istream<charT, traits>& is, const charT* fmt,
    year_month_day& ymd, basic_string<charT, traits, Alloc>* abbrev = nullptr,
    minutes* offset = nullptr);

Параметры шаблона

Alloc
Тип, представляющий объект распределителя, который обрабатывает выделение и распределение памяти строки.

charT
Тип данных одного символа, считываемого из потока и хранящегося в строке. Стандартная библиотека C++ предоставляет специализации этого шаблона класса с определениями string типов для элементов типаchar, wstringдля , для , u16string для wchar_tchar16_tи u32string для char32_t.

traits
charT Описывает атрибуты для basic_string и basic_istream специализации.

Rep
Внутренний duration тип представления типа.

Period
std::ratio Тип, представляющий отношение одного секунды к исходному Rep типу (то есть секунда в секундуRep).

Duration
Тип, duration используемый для специализации времени.

Параметры

abbrev
Если abbrev это не nullptrтак, и указан описатель %Z формата, а синтаксический анализ выполнен успешно, содержит abbrev проанализированное значение.

d
Если синтаксический анализ выполнен успешно, содержит день синтаксического анализа, когда функция возвращается.

dur
Синтаксический duration анализ из потока.

fmt
Строка формата, используемая для сопоставления входных данных. Строки форматирования синтаксического анализа см. в списке параметров форматирования синтаксического анализа.

ft
Синтаксический file_time анализ из потока.

gt
Синтаксический gps_time анализ из потока.

is
Входной поток для синтаксического анализа.

lt
Синтаксический local_time анализ из потока.

m
Синтаксический month анализ из потока.

md
Синтаксический month_day анализ из потока.

offset
Если offset это не nullptrтак, а описатель %z формата или измененный вариант, например %0z %Ez или указанный, и синтаксический анализ выполнен успешно, то offset указывает на проанализированное значение.

st
Синтаксический sys_time анализ из потока.

tt
Синтаксический tai_time анализ из потока.

ut
Синтаксический utc_time анализ из потока.

wd
Синтаксический weekday анализ из потока.

y
Синтаксический year анализ из потока.

ym
Синтаксический year_month анализ из потока.

ymd
Синтаксический year_month_day анализ из потока.

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

Входной поток, is

Пример: from_stream

// compile using: /std:c++latest
#include <chrono>
#include <iostream>

int main()
{
    std::istringstream str{ "22" };
    std::basic_istream<char> stream{ str.rdbuf() };
    std::chrono::day d;
    std::chrono::from_stream(stream, "%d", d);
    std::cout << d << "\n";
    return 0;
}
22

Замечания

7) Если %Z используется и успешно анализируется, это значение будет назначено *abbrev , если abbrev значение не равно NULL. Если %z (или измененный вариант) используется и успешно анализируется, это значение будет назначено *offset , если offset значение не равно NULL.

12) Если %Z используется и успешно анализируется, это значение будет назначено *abbrev , если abbrev значение не равно null. Если %z (или измененный вариант) используется и успешно анализируется, это значение будет назначено *offset , если offset значение не равно NULL.

from_stream Форматирование строк

Формат может быть одним из следующих строк:

Дата

класса хранения Description
%D Эквивалентно %m/%d/%y.
%F
%NF
Эквивалент %Y-%m-%d. При изменении ширины Nширина применяется только %Yк .
%x
%Ex
Представление даты языкового стандарта.
%Ex анализирует альтернативное представление даты языкового стандарта.1

день

класса хранения Description
%d
%Od
%Nd
%e
%Oe
%Ne
День месяца в виде десятичного числа.
%Nd указывает максимальное число символов для чтения, например %1d. Если N не указан, значение по умолчанию равно 2.
Начальные нули разрешены, но не требуются.
%Od (буква O, не ноль) интерпретирует альтернативное представление языкового стандарта дня месяца.1
%e эквивалентен %d и может быть изменен, как %d.1

День недели

класса хранения Description
%a
%A
Полное или сокращенное имя языкового стандарта без учета регистра.
%A — это эквивалент %a
%u
%Nu
Iso будний день в виде десятичного числа (1-7), где понедельник равен 1.
%Nu указывает максимальное число символов для чтения, например %2u. Если N не указан, значение по умолчанию равно 1. Начальные нули разрешены, но не требуются.
%w
%Nw
%Ow
Будний день в виде десятичного числа (0-6), где воскресенье равно 0.
%Nw указывает максимальное число символов для чтения, например %2w. Если N не указан, значение по умолчанию равно 1.
Начальные нули разрешены, но не требуются.
%Ow (буква O, не ноль) интерпретирует альтернативное представление языкового стандарта.1

Неделя и день года

класса хранения Description
%j
%Nj
Если тип форматирования является специализацией длительности, десятичное число дней без заполнения. В противном случае день года в виде десятичного числа. Jan 1 имеет значение 001. Если результат меньше трех цифр, он слева 0 с (ноль) до трех цифр.
%Njуказывает максимальное число символов для чтения, например %2j. Если N не указан, значение по умолчанию равно 3. Конечные цифры разрешены, но не являются обязательными.
%U
%NU
%OU
Число недели года в виде десятичного числа. Первое воскресенье года — первый день недели 01. Дни того же года до этой недели находятся на неделе 00. Если результат является одной цифрой, он имеет префикс ( 0 ноль).
%NU указывает максимальное число символов для чтения, например %2U. Если N не указан, значение по умолчанию равно 2.
Начальные нули разрешены, но не требуются.
%OU (буква O, не ноль) анализирует альтернативное представление языкового стандарта.1
%W
%NW
%OW
Число недели года в виде десятичного числа. Первый понедельник года — первый день недели 01. Дни того же года до этой недели находятся на неделе 00.
Если результат является одной цифрой, он имеет префикс ( 0 ноль).
%NW указывает максимальное число символов для чтения, например %2W. Если N не указан, значение по умолчанию равно 1
Начальные нули разрешены, но не требуются.%OW (буква O, не ноль) анализирует альтернативное представление языкового стандарта.1

Время дня

класса хранения Description
%H
%NH
%OH
Час (24-часовые часы) в виде десятичного числа. Если результат является одной цифрой, он имеет префикс ( 0 ноль).
%NH задает максимальное число символов для чтения, например %1H. Если N не указан, значение по умолчанию равно 2.
Начальные нули разрешены, но не требуются.
%OH (буква O, не ноль) анализирует альтернативное представление языкового стандарта.1
%I
%NI
%OI
Час (12-часовые часы) в виде десятичного числа. Если результат является одной цифрой, он имеет префикс ( 0 ноль).
%NI задает максимальное число символов для чтения, например %1I. Если N не указан, значение по умолчанию равно 2.
Начальные нули разрешены, но не требуются.
%OI (буква O, не ноль) анализирует альтернативное представление языкового стандарта.1
%M
%NM
%OM
Минуты в виде десятичного числа. Если результат является одной цифрой, он имеет префикс ( 0 ноль).
%NM указывает максимальное число символов для чтения, например %3M. Если N не указан, значение по умолчанию равно 2.
Начальные нули разрешены, но не требуются.
%OM (буква O, не ноль) анализирует альтернативное представление языкового стандарта.1
%S
%NS
%OS
Секунды в виде десятичного числа. Если число секунд меньше 10, результат префиксируется с 0 (ноль). Если точность входных данных не может быть точно представлена секундами, формат — это десятичное число с плавающей запятой с фиксированным форматом. Она имеет точность микросекунда, если функция не может преобразовать десятичные секунды с плавающей запятой в пределах 18 дробных цифр. В противном случае его точность соответствует точности входных данных. Символ десятичной запятой локализован в соответствии с языковым стандартом.
%NS указывает максимальное число символов для чтения, например %3S. Если N не указан, значение по умолчанию равно 2.
Начальные нули разрешены, но не требуются.
%OS (буква O, не ноль) анализирует альтернативное представление языкового стандарта.1
%p Эквивалент языковых стандартов обозначения AM/PM, связанных с 12-часовыми часами.
%r 12-часовое время языкового стандарта.
%R Эквивалент %H:%M.
%T Эквивалент "%H:%M:%S".
%X, %EX Представление времени языкового стандарта.
%EX анализирует представление времени альтернативного языкового стандарта.1

месяц

класса хранения Description
%b, , %B%h Полное или сокращенное имя месяца языкового стандарта. Если значение не содержит допустимого месяца, format_error создается исключение.
%h эквивалентна %b.
%m, %Nm, %Om Месяц в виде десятичного числа. 1 января.
%Nm задает максимальное число символов для чтения, например %3m. Если N не указан, значение по умолчанию равно 2.
Начальные нули разрешены, но не требуются.
%Om (буква O, не ноль) интерпретирует альтернативное представление языкового стандарта.1

Year

класса хранения Description
%C, %NC, %EC Век как десятичное число.
%NC задает максимальное число символов для чтения, например %1N. Если N не указан, значение по умолчанию равно 2. Начальные нули разрешены, но не требуются.
%EC интерпретирует альтернативное представление локали века.
%y, %Ny, %Ey%Oy Последние две десятичные цифры года. Если столетие не указано (например, с помощью %C), значения в диапазоне считаются 1969 по 1999 год, а значения в диапазоне [69, 99] [00, 68] считаются 2000-2068 годами.
%Ny указывает максимальное число символов для чтения. Если N не указан, значение по умолчанию равно 2.
Начальные нули разрешены, но не требуются.
%Ey и %Oy (буква O, не ноль) интерпретируют альтернативное представление языкового стандарта.1
%Y, %NY, %EY Год в виде десятичного числа. Если результат меньше четырех цифр, он левой панели 0 с (ноль) до четырех цифр.
%NY указывает максимальное число символов для чтения. Если N не указан, значение по умолчанию равно 4.
%EY анализирует альтернативное полное представление языкового стандарта.1

Год на основе iso 8601

В ISO 8601 недели начинаются с понедельника. Первая неделя года должна включать 4 января и включать первый четверг года.

класса хранения Замена
%g
%Ng
Последние две десятичные цифры года на основе недели ISO. Если результат является одной цифрой, префиксируется 0 (ноль). %Ng задает максимальное число символов для чтения, например %1g. Если значение N не указано, значение по умолчанию — 2
%G
%NG
Год на основе недели ISO в виде десятичного числа. Если результат меньше четырех цифр, он левой панели 0 с (ноль) до четырех цифр. %NG задает максимальное число символов для чтения, например %1G. Если N не указан, значение по умолчанию равно 4
%V
%OV
%NV
Число недели на основе ISO в виде десятичного числа. Если результат является одной цифрой, он имеет префикс ( 0 ноль). %NV задает максимальное число символов для чтения, например %1V. Если значение N не указано, значение по умолчанию — 2
%OV (буква O, не ноль) анализирует альтернативное представление языкового стандарта.1

Общие

класса хранения Замена
%% Соответствует символу %
%c
%Ec
Представление даты и времени языкового стандарта.
%Ec интерпретирует альтернативное представление даты и времени языкового стандарта.1
%n Соответствует символу новой строки
%t Соответствует нулю или одному символу пробела
%z
%Ez
%Oz
Смещение от UTC в формате [+|-]hh[mm]. Например, -0430 относится к 4 часам 30 минут в формате UTC и 04 ссылается на 4 часа впереди UTC.
%Ezи %Oz (букваO, не ноль) анализируется между часами и минутами и отрисовывает : начальные нули в поле часа необязательный1: [+|-]h[h][:mm] Например, -04:30 относится к 4 часам 30 минут за utc, а 4 — на 4 часа впереди UTC.
%Z Сокращение часового пояса или имя. Синтаксический анализ одного слова. Это слово может содержать только буквенно-цифровые символы из базового исходного набора символов или одного из _, /-или+.

Флаги по типу

Класс Описатель/флаг
day d, e
duration j, H, I, M, S, r, R, T, p, (q, Q только для формата, а не синтаксического анализа)
file_time Z, z, c, x, X, D, F, g, G, J, U, V, W, Y, y, C, b, h, B, d, d, a, A, U, W, H, I, S, R, T, p
gps_time Z, z, c, x, X, D, F, g, G, J, U, V, W, Y, y, C, b, h, B, d, d, a, A, U, W, H, I, S, R, T, p
hh_mm_ss H, I, M, S, r, R, T, p
local_time c, x, X, D, F, g, G, J, U, V, W, Y, y, C, b, h, B, m, d, e, a, U, U, W, H, I, S, R, T, p
local_time_format_t z, Z, c, x, X, D, F, Y, C, y, b, b, h, m, d, e, a, A, u, w, H, I, S, S, R, R, P, G, U, V, W
local_info z, Z
month b, h, B, m
month_day B, d, j, e, b, h, m
month_day_last B, d, j, e, b, h, m
month_weekday b, B, h, m, a, A, u, w
month_weekday_last b, B, h, m, a, A, u, w
sys_info z, Z
sys_time Z, z, c, x, X, D, F, g, G, J, U, V, W, Y, y, C, b, h, B, d, d, a, A, U, W, H, I, S, R, T, p
tai Z, z, c, x, X, D, F, g, G, J, U, V, W, Y, y, C, b, h, B, d, d, a, A, U, W, H, I, S, R, T, p
utc_time Z, z, c, x, X, D, F, g, G, J, U, V, W, Y, y, C, b, h, B, d, d, a, A, U, W, H, I, S, R, T, p
weekday a, A, u, w
weekday_indexed a, A, u, w
weekday_last a, A, u, w
year Y, y, C
year_month Y, y, B, g, G, h, C, b, m
year_month_day D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, a, A, u, w
year_month_day_last D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, a, A, u, w
year_month_weekday D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, a, A, u, w
year_month_weekday_last D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, a, A, u, w
zoned_time z, Z, c, x, X, D, F, Y, C, y, b, b, h, m, d, e, a, A, u, w, H, I, S, S, R, R, P, G, U, V, W

1Реализация в настоящее время согласуется с strftime в этом, хотя O (буква O) и e принимается, они игнорируются. То есть "%Od" интерпретируется как "%d".

get_leap_second_info

leap_second_info Возвращает заданное время. В этом разделе содержатся сведения о том, происходит ли указанное время во время вставки в секунду. Он также предоставляет количество секунд прыжка, которые были добавлены в период с 1 января 1970 года и указанное время. Скачок второй вставки возникает, когда международная служба по повороту земли и эталонным системам (IERS) объявляет, что прыжок второй будет добавлен (в результате 61 секунды) для учета разницы между атомарным временем и временем, отслеживаемым измерением поворота земли, который является нерегулярным, и постепенно замедляется.

Синтаксис

template<class Duration>
leap_second_info
get_leap_second_info(const utc_time<Duration>& ut);  // C++20

Параметры

ut
Источник utc_time для получения leap_second_info .

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

leap_second_info Возвращает элемент, член is_leap_second которого находится true ut во время положительного прыжка второй вставки; в противном случае false. Член elapsed содержит сумму високосных секунд между датой 1970-01-01эпохи и ut. Если is_leap_second естьtrue, то в сумме включена секунда прыжкаelapsed, на которую ut ссылается.

get_tzdb

Возвращает первую запись в списке баз данных часового пояса на уровне программы.

Синтаксис

const tzdb& get_tzdb();  // C++20

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

Возвращает ссылку на первый tzdb объект, как если бы вызов get_tzdb_list().front(). Он создает runtime_error исключение, если это первая ссылка на базу данных часового пояса, а база данных часового пояса не может быть инициализирована.

Замечания

Если он еще не инициализирован, get_tzdb инициализирует базу данных часового пояса на уровне программы при первом доступе. После инициализации база данных содержит tzdb_list один инициализированный tzdb объект.

get_tzdb_list

Возвращает базу данных одноуровневого часового пояса по программе.

Синтаксис

tzdb_list& get_tzdb_list();  // C++20

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

Возвращает ссылку на объект на уровне tzdb_list программы. Он создает runtime_error исключение, если он не может вернуть ссылку на допустимый tzdb_list объект.

Замечания

Если он еще не инициализирован, get_tzdb_list инициализирует базу данных часового пояса на уровне программы при первом доступе. После инициализации база данных содержит tzdb_list один инициализированный tzdb объект. Функция get_tzdb_list является потокобезопасной.

is_am

Предикат для того, находится ли указанный час в части дня ante-meridiem (AM).

Синтаксис

constexpr bool is_am(const hours& h) noexcept;  // C++20

Параметры

h
hours Исходное представление в нотации 24-часового времени.

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

Возвращает значение true , если 0h <= h && h <= 11h, в противном случае false.

is_pm

Предикат для того, находится ли указанный час в части дня после меридиема (PM).

Синтаксис

constexpr bool is_pm(const hours& h) noexcept;  // C++20

Параметры

h
hours Исходное представление в нотации 24-часового времени.

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

Возвращает значение true , если 12h <= h && h <= 23h, в противном случае false.

locate_zone

Возвращает объект часового пояса, заданный именем часового пояса.

Синтаксис

const time_zone* locate_zone(string_view tz_name);  // C++20

Параметры

tz_name
Имя возвращаемого часового пояса.

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

Возвращает указатель на указатель time_zone , как если бы вызов get_tzdb().locate_zone(tz_name). Он создает исключение, если не удается найти указанный часовой runtime_error пояс или если это первая ссылка на базу данных часового пояса и базу данных часового пояса невозможно инициализировать.

Замечания

Если он еще не инициализирован, locate_zone инициализирует базу данных часового пояса на уровне программы при первом доступе. После инициализации база данных содержит tzdb_list один инициализированный tzdb объект.

make12

Возвращает указанный час в нотации за 12 часов.

Синтаксис

constexpr hours make12(const hours& h) noexcept;  // C++20

Параметры

h
hours Исходное представление в нотации 24-часового времени.

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

Возвращает 12-часовой эквивалент h в диапазоне [1h, 12h]. Возвращаемое значение не указано, если h он не находится в диапазоне [0h, 23h].

make24

Возвращает указанный час в нотации за 24 часа.

Синтаксис

constexpr hours make24(const hours& h, bool is_pm) noexcept;  // C++20

Параметры

h
hours Исходное представление в нотации за 12 часов.

is_pm
Исходное hours представление — PM (если true) или AM (если false).

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

Если is_pm имеет значение false, make24 возвращает 24-часовой эквивалент h в диапазоне [0h, 11h], если предполагается h , что представляет час AM. В противном случае возвращается 24-часовой эквивалент h в диапазоне [12h, 23h], если предполагается h , что он представляет час PM. Возвращаемое значение не указано, если h он не находится в диапазоне [1h, 12h].

reload_tzdb

Перезагрузит базу данных часового пояса, если доступны обновленные сведения.

Синтаксис

const tzdb& reload_tzdb();

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

После обновления базы данных часового пояса, если таковой имеется, reload_tzdb возвращает ссылку на первый tzdb объект, как если бы вызов get_tzdb_list().front(). Он создает runtime_error исключение, если он не может вернуть ссылку на допустимый tzdb объект.

Замечания

Локальная база данных часового пояса — это та, которая предоставляется при первом обращении к базе данных программы, например вызовомcurrent_zone. Во время выполнения программы реализация может обновить базу данных часового пояса. Обновление не влияет на программу каким-либо образом, если программа не вызывает функцию reload_tzdb . Потенциально обновленная база данных часового пояса называется удаленной базой данных часового пояса.

Функция reload_tzdb проверяет версию локальной базы данных часового пояса и удаленной базы данных часового пояса. Если версии локальных и удаленных баз данных одинаковы, он не вносит изменений. В противном случае удаленная база данных отправляется на передний tzdb_list план доступа get_tzdb_list. Обновление не делает никаких указателей, ссылок или итераторов. Функция reload_tzdb является потокобезопасной для вызовов get_tzdb_list().front() и get_tzdb_list().erase_after().

remote_version

Возвращает строку, содержащую последнюю версию удаленной базы данных.

Синтаксис

string remote_version();

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

Возвращает значение string , содержащее последнюю версию удаленной базы данных.

round(duration)

Округляет указанный duration до ближайшего представления duration в целевом типе.

Синтаксис

template<class ToDuration, class Rep, class Period>
constexpr ToDuration
round(const duration<Rep, Period>& d);  // C++17

Параметры

ToDuration
Тип целевого объекта duration . Ограничен как специализация, в duration которой treat_as_floating_point_v<typename ToDuration::rep> находится false.

Rep
Тип внутреннего представления источника duration d.

Period
std::ratio Тип, представляющий отношение одного секунды к исходному Rep типу (то есть секунда в секундуRep).

d
Исходный объект duration.

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

Возвращает ближайшее duration представление в ToDuration параметре d. Связи переходят к даже значению, то есть значению t , где t % 2 == 0.

Замечания

round не участвует в разрешении перегрузки, если ToDuration тип не является экземпляром объекта durationи ToDuration имеет целое представление.

round(time_point)

Возвращает ближайшую точку времени, представленную в целевом объекте duration , до указанной точки времени.

template<class ToDuration, class Clock, class Duration>
constexpr time_point<Clock, ToDuration>
round(const time_point<Clock, Duration>& tp);

Параметры

ToDuration
Тип целевого объекта duration . Ограничен как специализация, в duration которой treat_as_floating_point_v<typename ToDuration::rep> находится false.

Clock
Распространенный тип часов результата и исходного параметра tp.

Duration
Тип duration tp.

tp
Исходный объект time_point.

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

Возвращает ближайшую точку времени, представляющуюся с помощью ToDuration tp. Связи переходят к даже значению, то есть значению t , где t % 2 == 0. Фактически, time_point<Clock, ToDuration>(round<ToDuration>(tp.time_since_epoch()));.

Замечания

round не участвует в разрешении перегрузки, если ToDuration тип не является экземпляром durationобъекта.

time_point_cast

Приведение time_point объекта к объекту time_point с другим duration типом.

Синтаксис

template <class ToDuration, class Clock, class Duration>
time_point<Clock, ToDuration>
time_point_cast(const time_point<Clock, Duration>& tp);  // C++11

Параметры

ToDuration
Тип целевого объекта duration . Ограниченное в качестве специализации duration.

Clock
Распространенный тип часов результата и исходного параметра tp.

Duration
Тип duration tp.

tp
Объект для time_point приведения к объекту с типом ToDuration .

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

time_point Возвращает объект с типомToDuration. Фактически, time_point<Clock, ToDuration>(duration_cast<ToDuration>(t.time_since_epoch()));.

Замечания

Если ToDuration эта функция не является специализацией, эта функция не участвует в разрешении перегрузки duration.

См. также

<chrono>
chrono Литералы
Операторы chrono
Класс duration
Класс time_point
Класс time_zone