<chrono>
– funkce
abs(duration)
Vrátí d
hodnotu if d >= d.zero()
; v opačném případě vrátí -d
.
Syntaxe
template <class Rep, class Period>
constexpr duration<Rep, Period> abs(duration<Rep, Period> d ); // C++17
Parametry
Rep
Typ vnitřní reprezentace zdroje duration
d
.
Period
Typ std::ratio
představující poměr jedné sekundy ke zdrojovému Rep
typu (to znamená sekundy za Rep
).
d
Zdrojový duration
objekt.
Vrácená hodnota
Absolutní hodnota d
.
Příklad: abs(duration)
// compile using: /std:c++latest
#include <chrono>
#include <iostream>
int main()
{
std::cout << abs(-24h);
return 0;
}
24h
ceil(duration)
Vrátí nejmenší reprezentaci duration
v cílovém typu, který je větší nebo roven zadanému duration
.
Syntaxe
template<class ToDuration, class Rep, class Period>
constexpr ToDuration
ceil(const duration<Rep, Period>& d); // C++17
Parametry
ToDuration
Typ cíle duration
. Omezené jako specializace duration
.
Rep
Typ vnitřní reprezentace zdroje duration
d
.
Period
Typ std::ratio
představující poměr jedné sekundy ke zdrojovému Rep
typu (to znamená sekundy za Rep
).
d
Zdrojový duration
objekt.
Vrácená hodnota
Vrátí nejmenší duration
reprezentovatelnou hodnotu, ToDuration
která je větší nebo rovna parametru d
.
Poznámky
ceil
není součástí řešení přetížení, pokud ToDuration
typ není instance .duration
ceil(time_point)
Vrátí nejmenší časový bod reprezentovaný v cíli duration
, který je větší nebo roven zadanému časovému bodu.
Syntaxe
template<class ToDuration, class Clock, class Duration>
constexpr time_point<Clock, ToDuration>
ceil(const time_point<Clock, Duration>& t); // C++17
Parametry
ToDuration
Typ cíle duration
. Omezené jako specializace duration
.
Clock
Běžný typ hodin výsledku a parametr zdroje tp
.
Duration
Typ duration
.tp
tp
Zdrojový time_point
objekt.
Vrácená hodnota
Vrátí nejmenší časový bod reprezentovatelný pomocí ToDuration
toho, který je větší nebo roven tp
. Efektivně , time_point<Clock, ToDuration>(ceil<ToDuration>(tp.time_since_epoch()));
.
Poznámky
ceil
není součástí řešení přetížení, pokud ToDuration
typ není instance .duration
clock_cast
time_point
Převede jedno hodiny na ekvivalent time_point
pro jiné hodiny.
Syntaxe
template <class DestClock, class SourceClock, class Duration>
auto clock_cast(const time_point<SourceClock, Duration>& t); // C++20
Parametry
DestClock
Typ hodin, na který se má převést time_point
.
Duration
The duration
of the SourceClock
, or one that you specify.
SourceClock
Typ hodin, na který time_point
se má převést, je založen.
t
Převod.time_point
Vrácená hodnota
Ekvivalent time_point
, t
ale specifický pro DestClock
.
Poznámky
Parametry SourceClock
a Duration
lze je odvodit pomocí dedukce argumentu šablony třídy, pokud nejsou explicitně předány. Například , clock_cast<utc_clock>(file_clock::now())
SourceClock
je vyvolána file_clock
být , a Duration
je vyvolána být file_clock::duration
.
Z následujícího seznamu správně vytvořených převodů hodin je ten, který vyžaduje, aby byl vybrán co nejmenší počet kroků převodu 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)))
Další informace o tom, co clock_time_conversion
dělá, naleznete v tématu clock_time_conversion
struktura.
Příklad: 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
Získá aktuální objekt časového pásma.
Syntaxe
const time_zone* current_zone(); // C++20
Vrácená hodnota
Vrátí ukazatel na ukazatel time_zone
, jako by volání get_tzdb().current_zone()
. runtime_error
Vyvolá výjimku, pokud se jedná o první odkaz na databázi časového pásma a databázi časového pásma nelze inicializovat.
duration_cast
Přetypuje hodnotu duration
na zadaný cílový duration
typ.
Syntaxe
template <class ToDuration, class Rep, class Period>
constexpr ToDuration
duration_cast(const duration<Rep, Period>& d); // C++11
Parametry
ToDuration
Typ cíle duration
. Omezené jako specializace duration
.
Rep
Typ vnitřní reprezentace zdroje duration
d
.
Period
Typ std::ratio
představující poměr jedné sekundy ke zdrojovému Rep
typu (to znamená sekundy za Rep
).
d
Zdrojový duration
objekt, který se má přetypovat na cílový duration
typ.
Vrácená hodnota
Objekt typu ToDuration
, který představuje duration
d
. V případě potřeby je zkrácený tak, aby se vešel do cílového typu. Výsledek přetypování čísla s plovoucí desetinou čárkou na integrál duration
není definován, pokud zdroj obsahuje NaN
, nekonečno nebo je příliš velký pro reprezentaci v cíli duration
.duration
Poznámky
Pokud je zdrojové období přesně dělitelné podle cílového období, například když převedete minuty na sekundy, nemusíte je používat duration_cast
k převodu mezi duration
typy. Navíc ho nepotřebujete k převodu mezi typy s plovoucí desetinou čárkou duration
. Obě převody můžete provést pomocí obyčejných přetypování nebo duration
konstruktorů.
duration_cast
není součástí řešení přetížení, pokud ToDuration
není instancí duration
. Provádí všechny převody pomocí namísto static_cast
implicitních převodů. Pokud je to možné, vyhnete se násobení a dělení. Například když kompilátor ví, že společný poměr cílových a zdrojových období má čitatel nebo jmenovatel 1. Výpočty se provádějí v nejširším dostupném typu a po dokončení se převedou static_cast
na typ výsledku.
Příklad: 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)
Vrátí největší reprezentaci duration
v cílovém typu, který je menší nebo roven zadanému duration
.
Syntaxe
template<class ToDuration, class Rep, class Period>
constexpr ToDuration
floor(const duration<Rep, Period>& d); // C++17
Parametry
ToDuration
Typ cíle duration
. Omezené jako specializace duration
.
Rep
Typ vnitřní reprezentace zdroje duration
d
.
Period
Typ std::ratio
představující poměr jedné sekundy ke zdrojovému Rep
typu (to znamená sekundy za Rep
).
d
Zdrojový duration
objekt.
Vrácená hodnota
Vrátí největší duration
reprezentaci, která je menší ToDuration
nebo rovna parametru d
.
Poznámky
floor
není součástí řešení přetížení, pokud ToDuration
typ není instance .duration
floor(time_point)
Vrátí největší časový bod reprezentovaný v cíli duration
, který je menší nebo roven zadanému časovému bodu.
Syntaxe
template<class ToDuration, class Clock, class Duration>
constexpr time_point<Clock, ToDuration>
floor(const time_point<Clock, Duration>& tp); // C++17
Parametry
ToDuration
Typ cíle duration
. Omezené jako specializace duration
.
Clock
Běžný typ hodin výsledku a parametr zdroje tp
.
Duration
Typ duration
.tp
tp
Zdrojový time_point
objekt.
Vrácená hodnota
Vrátí největší časový bod reprezentovatelný pomocí ToDuration
menší než nebo rovno tp
. Efektivně , time_point<Clock, ToDuration>(floor<ToDuration>(tp.time_since_epoch()));
.
Poznámky
floor
není součástí řešení přetížení, pokud ToDuration
typ není instance .duration
from_stream
Parsujte vstupní datový proud do jednoho z typů časových std::chrono
nebo intervalů, například day
, month
, month_day
, weekday
, year
, year_month
, year_month_day
atd., pomocí zadaného formátu.
Pokud analýza selže, is.setstate
zavolá se (ios_base::failbit
) a výstupní parametr se nezmění.
// 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);
Parametry šablony
Alloc
Typ, který představuje alokátor objekt, který zpracovává přidělení řetězce a uvolnění paměti.
charT
Datový typ jednoho znaku, který se má číst z datového proudu a který je uložený v řetězci. Standardní knihovna jazyka C++ poskytuje specializace této šablony třídy s definicemi string
typů pro prvky typu char
, wstring
pro , u16string
pro wchar_t
char16_t
a u32string
pro char32_t
.
traits
Popisuje charT
atributy pro basic_string
specializaci a basic_istream
specializace.
Rep
Interní typ duration
reprezentace typu.
Period
Typ std::ratio
představující poměr jedné sekundy ke zdrojovému Rep
typu (to znamená sekundy za Rep
).
Duration
Typ duration
použitý pro specializaci podle času.
Parametry
abbrev
Pokud abbrev
není nullptr
, a specifikátor %Z
formátu je zadán a parse je úspěšný, pak abbrev
obsahuje analyzovanou hodnotu.
d
Pokud je analýza úspěšná, obsahuje parsovaný den, kdy funkce vrátí.
dur
Parsovaná duration
z datového proudu.
fmt
Formátovací řetězec použitý ke spárování vstupu. Seznam možností parsování formátování najdete v tématu Analýza řetězců formátování.
ft
Parsovaná file_time
z datového proudu.
gt
Parsovaná gps_time
z datového proudu.
is
Vstupní datový proud, který se má analyzovat.
lt
Parsovaná local_time
z datového proudu.
m
Parsovaná month
z datového proudu.
md
Parsovaná month_day
z datového proudu.
offset
Pokud offset
není nullptr
, a specifikátor %z
formátu nebo upravená varianta, například %Ez
nebo %0z
je zadána, a analýza je úspěšná, pak offset
odkazuje na parsovanou hodnotu.
st
Parsovaná sys_time
z datového proudu.
tt
Parsovaná tai_time
z datového proudu.
ut
Parsovaná utc_time
z datového proudu.
wd
Parsovaná weekday
z datového proudu.
y
Parsovaná year
z datového proudu.
ym
Parsovaná year_month
z datového proudu.
ymd
Parsovaná year_month_day
z datového proudu.
Vrácená hodnota
Vstupní datový proud is
Příklad: 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
Poznámky
7) Pokud %Z
se použije a úspěšně parsuje, přiřadí se *abbrev
tato hodnota, pokud abbrev
není null. Pokud %z
se použije (nebo upravená varianta) a úspěšně parsuje, přiřadí se *offset
tato hodnota, pokud offset
není null.
12) Pokud %Z
se použije a úspěšně parsuje, přiřadí se *abbrev
tato hodnota, pokud abbrev
není null. Pokud %z
se použije (nebo upravená varianta) a úspěšně parsuje, přiřadí se *offset
tato hodnota, pokud offset
není null.
from_stream
formátovací řetězce
Formát může být jedním z těchto řetězců:
Datum
Specifikátor | Popis |
---|---|
%D |
Ekvivalent k %m/%d/%y |
%F % NF |
Ekvivalent k %Y-%m-%d . Pokud je změněna s šířkou N , šířka se použije pouze %Y na . |
%x %Ex |
Reprezentace data národního prostředí.%Ex parsuje reprezentaci alternativního data národního prostředí.1 |
Den
Specifikátor | Popis |
---|---|
%d %Od % Nd %e %Oe % Ne |
Den v měsíci jako desetinné číslo.% Nd určuje maximální počet znaků, které se mají přečíst, například %1d . Pokud není zadán N , výchozí hodnota je 2.Počáteční nuly jsou povolené, ale nejsou povinné. %Od (písmeno O , ne nula) interpretuje alternativní reprezentaci národního prostředí dne v měsíci.1 %e je ekvivalentní %d a může být změněn jako %d .1 |
Den v týdnu
Specifikátor | Popis |
---|---|
%a %A |
Celé nebo zkrácené jméno národního prostředí nerozlišuje velká a malá písmena.%A je ekvivalentní %a |
%u % Nu |
Den v týdnu ISO jako desetinné číslo (1–7), kde pondělí je 1. % Nu určuje maximální počet znaků, které se mají přečíst, například %2u . Pokud není zadán n, výchozí hodnota je 1. Počáteční nuly jsou povolené, ale nejsou povinné. |
%w % Nw %Ow |
Den v týdnu jako desetinné číslo (0–6), kde neděle je 0.% Nw určuje maximální počet znaků, které se mají přečíst, například %2w . Pokud není zadán n, výchozí hodnota je 1.Počáteční nuly jsou povolené, ale nejsou povinné. %Ow (písmeno O , ne nula) interpretuje alternativní reprezentaci národního prostředí.1 |
Týden/den v roce
Specifikátor | Popis |
---|---|
%j % Nj |
Pokud je formátovaný typ specializace doby trvání, desetinné číslo dnů bez odsazení. V opačném případě je den v roce desetinným číslem. Jan 1 je 001 . Pokud je výsledek menší než tři číslice, je vlevo na 0 sobě (nula) až tři číslice.% Nj určuje maximální počet znaků, které se mají přečíst, například %2j . Pokud není zadán n, výchozí hodnota je 3. Počáteční číslice jsou povolené, ale nejsou povinné. |
%U % NU %OU |
Číslo týdne v roce jako desetinné číslo. První neděle v roce je první den týdne 01 . Dny stejného roku před tímto týdnem jsou v týdnu 00 . Pokud je výsledkem jedna číslice, bude mít předponu 0 (nula).% NU určuje maximální počet znaků, které se mají přečíst, například %2U . Pokud není zadán N , výchozí hodnota je 2.Počáteční nuly jsou povolené, ale nevyžadují se. %OU (písmeno O , ne nula) parsuje alternativní reprezentaci národního prostředí.1 |
%W % NW %OW |
Číslo týdne v roce jako desetinné číslo. První pondělí v roce je první den v týdnu 01 . Dny stejného roku před tímto týdnem jsou v týdnu 00 .Pokud je výsledkem jedna číslice, bude mít předponu 0 (nula).% NW určuje maximální počet znaků, které se mají přečíst, například %2W . Pokud není zadaný N , výchozí hodnota je 1.Počáteční nuly jsou povolené, ale nevyžadují se. %OW (písmeno O , ne nula) parsuje alternativní reprezentaci národního prostředí.1 |
Denní doba
Specifikátor | Popis |
---|---|
%H % NH %OH |
Hodina (24hodinové hodiny) jako desetinné číslo. Pokud je výsledkem jedna číslice, bude mít předponu 0 (nula).% NH určuje maximální počet znaků, které se mají přečíst, %1H například . Pokud není zadán N , výchozí hodnota je 2.Počáteční nuly jsou povolené, ale nejsou povinné. %OH (písmeno O , ne nula) parsuje alternativní reprezentaci národního prostředí.1 |
%I % NI %OI |
Hodina (12hodinový formát) je desetinné číslo. Pokud je výsledkem jedna číslice, bude mít předponu 0 (nula).% NI určuje maximální počet znaků, které se mají přečíst, %1I například . Pokud není zadán N , výchozí hodnota je 2.Počáteční nuly jsou povolené, ale nejsou povinné. %OI (písmeno O , ne nula) parsuje alternativní reprezentaci národního prostředí.1 |
%M % NM %OM |
Minuty jako desetinné číslo. Pokud je výsledkem jedna číslice, bude mít předponu 0 (nula).% NM určuje maximální počet znaků, které se mají přečíst, například %3M . Pokud není zadán N , výchozí hodnota je 2.Počáteční nuly jsou povolené, ale nejsou povinné. %OM (písmeno O , ne nula) parsuje alternativní reprezentaci národního prostředí.1 |
%S % NS %OS |
Sekundy jako desetinné číslo. Pokud je počet sekund menší než 10, bude mít výsledek předponu 0 (nula). Pokud přesnost vstupu nemůže být přesně reprezentována s sekundami, je formát desetinnou desetinnou čárkou s pevným formátem. Má přesnost mikrosekund, pokud funkce nemůže převést desetinnou čárku s desetinnou čárkou během 18 desetinných číslic. Jinak přesnost odpovídá přesnosti vstupu. Znak desetinné čárky je lokalizován podle národního prostředí.% NS určuje maximální počet znaků, které se mají přečíst, například %3S . Pokud není zadán N , výchozí hodnota je 2.Počáteční nuly jsou povolené, ale nejsou povinné. %OS (písmeno O , ne nula) parsuje alternativní reprezentaci národního prostředí.1 |
%p |
Ekvivalent národního prostředí označení AM/PM přidružených k hodinovým 12hodinovým hodinám. |
%r |
Národní prostředí má 12hodinový časový interval. |
%R |
Ekvivalent k %H:%M . |
%T |
Ekvivalent k "%H:%M:%S" . |
%X , %EX |
Reprezentace času národního prostředí.%EX parsuje reprezentaci času alternativního národního prostředí.1 |
Month
Specifikátor | Popis |
---|---|
%b , , %B %h |
Úplný nebo zkrácený název měsíce národního prostředí. Pokud hodnota neobsahuje platný měsíc, vyvolá format_error se výjimka.%h je ekvivalent %b . |
%m , % Nm , %Om |
Měsíc jako desetinné číslo. Jan je 1.% Nm určuje maximální počet znaků, které se mají přečíst, %3m například . Pokud není zadán N , výchozí hodnota je 2.Počáteční nuly jsou povolené, ale nejsou povinné. %Om (písmeno O , ne nula) interpretuje alternativní reprezentaci národního prostředí.1 |
Year (Rok)
Specifikátor | Popis |
---|---|
%C , % NC , %EC |
Století jako desetinné číslo.% NC určuje maximální počet znaků, které se mají přečíst, %1N například . Pokud není zadán N , výchozí hodnota je 2. Počáteční nuly jsou povolené, ale nejsou povinné.%EC interpretuje alternativní reprezentaci národního prostředí století. |
%y , % Ny , %Ey , %Oy |
Poslední dvě desetinná místa v roce. Pokud století není jinak zadáno (například pomocí ), %C hodnoty v oblasti [69, 99] se považují za roky 1969 až 1999 a hodnoty v oblasti [00, 68] se považují za roky 2000 až 2068.% Ny určuje maximální počet znaků, které se mají přečíst. Pokud není zadán N , výchozí hodnota je 2.Počáteční nuly jsou povolené, ale nejsou povinné. %Ey a %Oy (písmeno O , ne nula) interpretují alternativní reprezentaci národního prostředí.1 |
%Y , % NY , %EY , |
Rok jako desetinné číslo. Pokud je výsledek menší než čtyři číslice, je nalevo odsaděný ( 0 nula) na čtyři číslice.% NY určuje maximální počet znaků, které se mají přečíst. Pokud není zadán n, výchozí hodnota je 4.%EY parsuje alternativní reprezentaci národního prostředí v celém roce.1 |
Iso 8601 week-based year
V ISO 8601 začínají týdny od pondělí. První týden roku musí obsahovat 4. ledna a první čtvrtek roku.
Specifikátor | Náhrada |
---|---|
%g % Ng |
Poslední dvě desítkové číslice roku založeného na iso týdnech. Pokud je výsledkem jedna číslice, je předpona 0 (nula). % Ng určuje maximální počet znaků, které se mají přečíst, %1g například . Pokud není zadán N, výchozí hodnota je 2. |
%G % NG |
Rok založený na týdnu ISO jako desetinné číslo. Pokud je výsledek menší než čtyři číslice, je nalevo odsaděný ( 0 nula) na čtyři číslice. % NG určuje maximální počet znaků, které se mají přečíst, %1G například . Pokud není zadaný N , výchozí hodnota je 4. |
%V %OV % NV |
Číslo týdne podle iso jako desetinné číslo. Pokud je výsledkem jedna číslice, bude mít předponu 0 (nula). % NV určuje maximální počet znaků, které se mají přečíst, %1V například . Pokud není zadán N, výchozí hodnota je 2.%OV (písmeno O , ne nula) parsuje alternativní reprezentaci národního prostředí.1 |
OBECNÉ
Specifikátor | Náhrada |
---|---|
%% |
Odpovídá znaku % |
%c %Ec |
Reprezentace data a času národního prostředí.%Ec interpretuje alternativní reprezentaci data a času národního prostředí.1 |
%n |
Odpovídá znaku nového řádku. |
%t |
Odpovídá nule nebo jednomu znaku prázdného znaku. |
%z %Ez %Oz |
Posun od UTC ve formátu [+|-]hh[mm] . Například -0430 odkazuje na 4 hodiny 30 minut za UTC a 04 odkazuje na 4 hodiny před UTC.%Ez a %Oz (písmeno O , ne nula) parsujte : mezi hodinami a minutami a vykreslujte počáteční nuly v poli hodiny volitelné1: [+|-]h[h][:mm] . Například -04:30 odkazuje na 4 hodiny 30 minut za UTC a 4 hodiny před UTC. |
%Z |
Zkratka nebo název časového pásma. Jedno slovo je analyzováno. Toto slovo může obsahovat pouze alfanumerické znaky ze základní zdrojové znakové sady, nebo jedno z _ , , / - nebo + . |
Příznaky podle typu
Třída | Specifikátor/příznak |
---|---|
day |
d, e |
duration |
j, H, I, M, S, r, R, T, p, (q, Q jsou určené pouze pro formát, ne parsování) |
file_time |
Z, z, c, x, X, D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w, H, I, M, S, r, R, T, p |
gps_time |
Z, z, c, x, X, D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w, H, I, M, S, r, 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, A, u, w, H, I, M, S, r, 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, M, S, r, R, T, p, g, 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, m, d, e, a, A, u, w, H, I, M, S, r, R, T, p |
tai |
Z, z, c, x, X, D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w, H, I, M, S, r, R, T, p |
utc_time |
Z, z, c, x, X, D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w, H, I, M, S, r, 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, e, a, A, u, w |
year_month_day_last |
D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w |
year_month_weekday |
D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, a, A, u, w |
year_month_weekday_last |
D, F, g, G, j, U, V, W, Y, y, C, b, h, B, m, d, e, 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, M, S, r, R, T, p, g, G, U, V, W |
1Implementace je v současné době konzistentní s strftime v tom, že i když O
(písmeno O) a e
jsou přijímány, jsou ignorovány. To znamená, "%Od"
že je interpretován jako "%d"
.
get_leap_second_info
Vrátí hodnotu leap_second_info
pro zadaný čas. Poskytuje informace o tom, jestli se zadaný čas vyskytuje během přestupné sekundy vložení. Poskytuje také počet přestupných sekund, které byly přidány od 1. ledna 1970 do zadaného času. Přestupný druhý vložení nastane, když mezinárodní rotace země a referenční systémy (IERS) deklaruje, že se přidá přestupná sekunda (výsledkem je 61 sekunda), aby se zohlednil rozdíl mezi atomovým časem a časem sledovaným měřením rotace země, což je nepravidelné a postupně se zpomaluje.
Syntaxe
template<class Duration>
leap_second_info
get_leap_second_info(const utc_time<Duration>& ut); // C++20
Parametry
ut
utc_time
Zdroj, pro který se má získat.leap_second_info
Vrácená hodnota
Vrátí členaleap_second_info
, jehož člen is_leap_second
je-li true
ut
během kladného přestupu druhé vložení; v opačném případě . false
Člen elapsed
obsahuje součet přestupných sekund mezi datem 1970-01-01
epochy a ut
. Pokud is_leap_second
je true
, přestupný druhý odkaz je ut
zahrnut do součtu elapsed
.
get_tzdb
Získá první položku v seznamu databáze časového pásma v rámci programu.
Syntaxe
const tzdb& get_tzdb(); // C++20
Vrácená hodnota
Vrátí odkaz na první tzdb
objekt, jako by volání get_tzdb_list().front()
. runtime_error
Vyvolá výjimku, pokud se jedná o první odkaz na databázi časového pásma a databázi časového pásma nelze inicializovat.
Poznámky
Pokud ještě nebyla inicializována, get_tzdb
inicializuje databázi časového pásma celého programu při prvním přístupu. Při inicializaci je tzdb_list
databáze, která obsahuje jeden inicializovaný tzdb
objekt.
get_tzdb_list
Získá databázi jednoúčelového časového pásma pro celý program.
Syntaxe
tzdb_list& get_tzdb_list(); // C++20
Vrácená hodnota
Vrátí odkaz na objekt v rámci tzdb_list
programu. runtime_error
Vyvolá výjimku, pokud nemůže vrátit odkaz na platný tzdb_list
objekt.
Poznámky
Pokud ještě nebyla inicializována, get_tzdb_list
inicializuje databázi časového pásma celého programu při prvním přístupu. Při inicializaci je tzdb_list
databáze, která obsahuje jeden inicializovaný tzdb
objekt. Funkce get_tzdb_list
je bezpečná pro přístup z více vláken.
is_am
Predikát určuje, zda je zadaná hodina v ante-meridiem (AM) část dne.
Syntaxe
constexpr bool is_am(const hours& h) noexcept; // C++20
Parametry
h
Reprezentace zdroje hours
ve 24hodinovém zápisu.
Vrácená hodnota
Vrátí true
, pokud 0h <= h && h <= 11h
, jinak false
.
is_pm
Predikát určuje, zda je zadaná hodina v části dne po meridiem (PM).
Syntaxe
constexpr bool is_pm(const hours& h) noexcept; // C++20
Parametry
h
Reprezentace zdroje hours
ve 24hodinovém zápisu.
Vrácená hodnota
Vrátí true
, pokud 12h <= h && h <= 23h
, jinak false
.
locate_zone
Získá objekt časového pásma určený názvem časového pásma.
Syntaxe
const time_zone* locate_zone(string_view tz_name); // C++20
Parametry
tz_name
Název časového pásma, které se má vrátit.
Vrácená hodnota
Vrátí ukazatel na ukazatel time_zone
, jako by volání get_tzdb().locate_zone(tz_name)
. runtime_error
Vyvolá výjimku, pokud nemůže najít zadané časové pásmo nebo pokud se jedná o první odkaz na databázi časového pásma a databázi časového pásma nelze inicializovat.
Poznámky
Pokud ještě nebyla inicializována, locate_zone
inicializuje databázi časového pásma celého programu při prvním přístupu. Při inicializaci je tzdb_list
databáze, která obsahuje jeden inicializovaný tzdb
objekt.
make12
Vrátí zadanou hodinu v 12hodinovém zápisu času.
Syntaxe
constexpr hours make12(const hours& h) noexcept; // C++20
Parametry
h
Reprezentace zdroje hours
ve 24hodinovém zápisu.
Vrácená hodnota
Vrátí 12hodinový h
ekvivalent v rozsahu [1h, 12h]
. Vrácená hodnota není zadána, pokud h
není v oblasti [0h, 23h]
.
make24
Vrátí zadanou hodinu v 24hodinovém zápisu.
Syntaxe
constexpr hours make24(const hours& h, bool is_pm) noexcept; // C++20
Parametry
h
Reprezentace zdroje hours
ve 12hodinovém zápisu.
is_pm
Reprezentace zdroje hours
je PM (if true
) nebo AM (if false
).
Vrácená hodnota
Pokud is_pm
je false
hodnota , make24
vrátí 24hodinový h
ekvivalent v rozsahu [0h, 11h]
za předpokladu, že h
představuje hodinu AM. V opačném případě vrátí 24hodinový h
ekvivalent v rozsahu [12h, 23h]
za předpokladu, že h
představuje hodinu pm. Vrácená hodnota není zadána, pokud h
není v oblasti [1h, 12h]
.
reload_tzdb
Znovu načte databázi časového pásma, pokud jsou k dispozici aktualizované informace.
Syntaxe
const tzdb& reload_tzdb();
Vrácená hodnota
Jakmile provede aktualizaci databáze časových pásem, pokud existuje, reload_tzdb
vrátí odkaz na první tzdb
objekt, jako by volání get_tzdb_list().front()
. runtime_error
Vyvolá výjimku, pokud nemůže vrátit odkaz na platný tzdb
objekt.
Poznámky
Místní databáze časového pásma je databáze zadaná při prvním přístupu programu k databázi, například voláním current_zone
. Během spuštění programu může implementace aktualizovat databázi časového pásma. Aktualizace nemá žádný vliv na program, pokud program nevolá reload_tzdb
funkci. Potenciálně aktualizovaná databáze časového pásma se nazývá databáze vzdáleného časového pásma.
Funkce reload_tzdb
zkontroluje verzi databáze místního časového pásma i databáze vzdáleného časového pásma. Pokud jsou verze místních a vzdálených databází stejné, neprovádí žádné změny. V opačném případě se vzdálená databáze nasdílí před přístup tzdb_list
.get_tzdb_list
Aktualizace neaktualizuje žádné ukazatele, odkazy ani iterátory. Funkce reload_tzdb
je bezpečná pro volání a get_tzdb_list().front()
get_tzdb_list().erase_after()
.
remote_version
Získá řetězec, který obsahuje nejnovější verzi vzdálené databáze.
Syntaxe
string remote_version();
Vrácená hodnota
string
Vrátí nejnovější verzi vzdálené databáze.
round(duration)
Zaokrouhlí zadanou duration
hodnotu na nejbližší reprezentovatelnou duration
hodnotu v cílovém typu.
Syntaxe
template<class ToDuration, class Rep, class Period>
constexpr ToDuration
round(const duration<Rep, Period>& d); // C++17
Parametry
ToDuration
Typ cíle duration
. Omezeno jako specializace kde duration
treat_as_floating_point_v<typename ToDuration::rep>
je false
.
Rep
Typ vnitřní reprezentace zdroje duration
d
.
Period
Typ std::ratio
představující poměr jedné sekundy ke zdrojovému Rep
typu (to znamená sekundy za Rep
).
d
Zdrojový duration
objekt.
Vrácená hodnota
Vrátí nejbližší duration
reprezentaci parametru ToDuration
d
. Ties přejít na sudou hodnotu, to znamená hodnota t
, kde t % 2 == 0
.
Poznámky
round
není součástí řešení přetížení, pokud ToDuration
typ není instance a duration
ToDuration
má integrální reprezentaci.
round(time_point)
Vrátí nejbližší časový bod reprezentovaný v cíli duration
na zadaný časový bod.
template<class ToDuration, class Clock, class Duration>
constexpr time_point<Clock, ToDuration>
round(const time_point<Clock, Duration>& tp);
Parametry
ToDuration
Typ cíle duration
. Omezeno jako specializace kde duration
treat_as_floating_point_v<typename ToDuration::rep>
je false
.
Clock
Běžný typ hodin výsledku a parametr zdroje tp
.
Duration
Typ duration
.tp
tp
Zdrojový time_point
objekt.
Vrácená hodnota
Vrátí nejbližší časový bod reprezentovatelný pomocí ToDuration
tp
funkce . Ties přejít na sudou hodnotu, to znamená hodnota t
, kde t % 2 == 0
. Efektivně , time_point<Clock, ToDuration>(round<ToDuration>(tp.time_since_epoch()));
.
Poznámky
round
není součástí řešení přetížení, pokud ToDuration
typ není instance .duration
time_point_cast
Přetypuje time_point
objekt na time_point
jiný duration
typ.
Syntaxe
template <class ToDuration, class Clock, class Duration>
time_point<Clock, ToDuration>
time_point_cast(const time_point<Clock, Duration>& tp); // C++11
Parametry
ToDuration
Typ cíle duration
. Omezené jako specializace duration
.
Clock
Běžný typ hodin výsledku a parametr zdroje tp
.
Duration
Typ duration
.tp
tp
Objekt time_point
, který má typ přetypovat ToDuration
.
Vrácená hodnota
time_point
Vrátí objekt, který má ToDuration
typ. Efektivně , time_point<Clock, ToDuration>(duration_cast<ToDuration>(t.time_since_epoch()));
.
Poznámky
Pokud ToDuration
není specializace duration
, tato funkce se neúčastní řešení přetížení.
Viz také
<chrono>
chrono
Literály
chrono
– operátory
Třída duration
Třída time_point
Třída time_zone