Sdílet prostřednictvím


<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

ceilnení 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

ceilnení 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 , tale 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_clockbý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

floornení 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

floornení 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_dayatd., pomocí zadaného formátu.

Pokud analýza selže, is.setstatezavolá 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, wstringpro , u16string pro wchar_tchar16_ta 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 %Yna .
%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.
%Njurč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, %1Hnapří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, %1Inapří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, %3mnapří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, %1Nnapří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í ), %Chodnoty 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, %1gnapří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, %1Gnapří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, %1Vnapří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-01epochy 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 falsehodnota , 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

roundnení součástí řešení přetížení, pokud ToDuration typ není instance a durationToDuration 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 tpfunkce . 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

roundnení 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