Třída utc_clock
Hodiny pro koordinovaný univerzální čas (UTC), který se někdy často označuje jako Greenwich Střední čas (GMT) nebo Čas Zulu. Místní čas se upraví z času UTC v závislosti na časovém pásmu.
Syntaxe
class utc_clock; // C++20
Poznámky
Tento čas měří čas od 00:00:00 UTC ve čtvrtek, 1. ledna 1970. Tyto hodiny představují přestupné sekundy a je základem občanského času po celém světě.
Rychlost času UTC je založená na mezinárodním atomovém čase (TAI), který používá atomické hodiny ke sledování času. Skoková sekunda se ale občas přidává do času UTC, aby se zachoval rozdíl mezi časem UTC a UT1 (slunečním časem) během +- 0,9 sekundy.
Došlo k nesrovnalostem mezi časem uchovávaném atomovými hodinami a časem uchovávaném sledováním rotace země. Je to proto, že rychlost otáčení země je nepravidelná a obecně se zpomaluje v průběhu času přibližně o jednu sekundu každých 1,5 let (i když se někdy rychlost otáčení země zvyšuje). Přestupná druhá úprava udržuje čas sledování UTC během sekundy průměrné délky dne.
Od roku 1972 bylo přidáno 27 přestupných sekund od doby, kdy se v roce 1972 začaly vkládat přestupné sekundy. Služba IERS (International Earth Rotation and Reference Systems Service) určuje, kdy se přidá přestupná sekunda. Přidání přestupné sekundy se označuje jako "přestupné druhé vložení". Když se vloží přestupná sekunda, čas, který se blíží půlnoci, pokračuje z 23 hodin 59 minut 59 minut až 23 hodin 59 minut 60 sekund (vložený skok sekunda) a pak na 0 hodin 0 minut 0 sekund (půlnoc). Historicky byly přidány přestupné sekundy 30. června nebo 31. prosince.
Čas UTC podle definice začíná 10 sekund za tai (atomický čas). 10 sekund bylo přidáno v roce 1972 do tai čas, aby se vychytávaly přestupné sekundy, které se v tomto okamžiku hromadily. Vzhledem k vložení dalších 27 přestupných sekund od té doby je čas UTC momentálně 37 sekund za časem TAI (atomické hodiny).
Členové
Název | Popis |
---|---|
from_sys |
Statický. Převede na sys_time .utc_time |
now |
Statický. Vrátí aktuální čas. |
to_sys |
Statický. Převede na utc_time .sys_time |
Nečlenové
Název | Popis |
---|---|
from_stream |
Parsujte utc_time z daného datového proudu pomocí zadaného formátu. |
get_leap_second_info |
Získá leap_second_info, který označuje, zda zadaný čas určuje čas, kdy byla vložena přestupná sekunda. Zahrnuje také součet všech přestupných sekund mezi 1. lednem 1970 a zadanou dobou trvání. |
operator<< |
utc_time Vypíše do daného datového proudu. |
Aliasy typů pohodlí
Název | Popis |
---|---|
utc_clock::duration |
V implementaci Microsoftu je to synonymum pro duration<system_clock::rep, system_clock::period> . Představuje dobu trvání měřenou v jednotkách 100 nanosekund. |
utc_clock::period |
Implementace Microsoftu to definuje jako synonymum pro system_clock::period . Představuje čas v sekundách (100 nanosekund) mezi jednotlivými značkami v době trvání. |
utc_clock::rep |
Synonymum pro typ (long long ) sloužící k reprezentaci integrálních jednotek v tomto formátu utc_clock::duration . |
utc_clock::time_point |
Synonymum pro time_point<utc_clock> . Používá se k reprezentaci time_point pro tento čas. |
Příbuzný
Název | Popis |
---|---|
utc_seconds |
Synonymum pro using utc_seconds = utc_time<seconds>; |
utc_time |
Synonymum pro template<class Duration> using utc_time = time_point<utc_clock, Duration>; představuje time_point pro .utc_clock Určíte dobu trvání. Definováno v std::chrono |
Veřejné konstanty
Název | Popis |
---|---|
[utc_clock::is_steady constant] (#is_steady_constant) |
Určuje, zda je typ hodin stabilní. Její hodnota je false . |
Požadavky
Hlavička: <chrono>
(od C++20)
Obor názvů: std::chrono
Možnost kompilátoru: /std:c++latest
from_sys
Statická metoda, která převede na sys_time
.utc_time
template<class Duration>
static utc_time<common_type_t<Duration, seconds>>
from_sys(const sys_time<Duration>& t);
Parametry
t
Převod.sys_time
Vrácená hodnota
Nastavená utc_time
doba, která nejvíce přibližuje sys_time
t
hodnotu . Pokud přímé mapování neexistuje, vrátí se time_point během přestupného druhého vložení a poslední reprezentovatelné hodnoty sys_time
před vložením přestupné sekundy.
to_sys
Statická metoda, která převede na utc_time
.sys_time
template<class Duration>
static sys_time<common_type_t<Duration, seconds>>
to_sys(const utc_time<Duration>& t);
Parametry
t
Převod.utc_time
Návratová hodnota
Nastaveno sys_time
na ekvivalentní bod v čase jako t
. Pokud přímé mapování neexistuje, je to poslední reprezentovatelná hodnota před vložením přestupné sekundy v případě, že t
představuje bod v čase při vložení přestupné sekundy. Přidání přestupné sekundy se označuje jako "přestupné druhé vložení". Když se vloží přestupná sekunda, čas, který se blíží půlnoci, pokračuje od 23 hodin 59 minut 59 minut do 23 hodin 59 minut 60 sekund (vložený přestupný druhý) a pak na 0 hodin 0 minut 0 sekund (půlnoc). V minulosti byly přidány přestupné sekundy buď 30. června, nebo 31. prosince.
is_steady
Statická hodnota, která určuje, zda je typ hodin stabilní. V implementaci is_steady_constant
Microsoftu je false
. utc_clock
Vzhledem k tomu, že není stabilní, nemůžete tento čas spolehlivě použít k tomu, abyste trvali čas před událostí, časem po události a odebrali je, abyste získali dobu trvání události, protože hodiny mohou být během této doby upraveny.
static const bool is_steady = false;
now
Statická metoda, která vrací aktuální čas UTC. Vrácený čas zahrnuje přestupné sekundy.
static time_point now() noexcept;
Návratová hodnota
Objekt time_point
, který představuje aktuální čas. Vrácený časový bod je efektivně from_sys(system_clock::now())
.
Viz také
<chrono>
file_clock class
gps_clock class
high_resolution_clock
local_t
Struct
steady_clock
Struct
system_clock
Struct
Třída tai_clock
Referenční informace k souborům hlaviček