Sdílet prostřednictvím


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 thodnotu . 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