<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_clock
Duration
и выводится в качестве 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_month
weekday
year
year_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_t
char16_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 |
Год
класса хранения | 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