Klasa utc_clock
Zegar czasu uniwersalnego koordynowanego (UTC), który jest czasami popularnie określany jako Czas średni Greenwich (GMT) lub Zulu. Czas lokalny jest dostosowywany od czasu UTC w zależności od strefy czasowej.
Składnia
class utc_clock; // C++20
Uwagi
Ten zegar mierzy czas od 00:00:00 UTC w czwartek, 1 stycznia 1970. Ten zegar odpowiada za sekundy przestępne i jest podstawą czasu cywilnego na całym świecie.
Szybkość czasu UTC jest oparta na czasie międzynarodowym atomowym (TAI), który używa zegarów atomowych do śledzenia czasu. Jednak sekunda przestępna jest od czasu do czasu UTC dodawana do czasu UTC, aby zachować różnicę między czasem UTC a UT1 (czas słoneczny) w ciągu +- 0,9 sekundy.
Istnieje rozbieżność między czasem utrzymywanym przez zegary atomowe, a czasem utrzymywanym przez śledzenie rotacji ziemi. To dlatego, że prędkość rotacji ziemi jest nieregularna, a ogólnie rzecz biorąc, spowalnia w czasie o około jedną sekundę co 1,5 roku (choć czasami prędkość rotacji ziemi wzrasta). Druga korekta skoku utrzymuje czas śledzenia UTC w ciągu sekundy średniej długości dnia.
Od czasu pisania tego pisania dodano 27 sekund przestępnych od czasu rozpoczęcia praktyki wstawiania sekund przestępnych w 1972 roku. International Earth Rotation and Reference Systems Service (IERS) określa, kiedy zostanie dodany skok sekundy. Dodanie sekundy przestępnej jest określane jako "wstawienie sekundy przestępnej". Po wstawieniu sekundy przestępnej czas zbliża się do północy, przechodzi z 23 godzin 59 minut 59 sekund do 23 godzin 59 minut 60 sekund (wstawiony skok sekundy), a następnie do 0 godzin 0 minut 0 sekund (północ). W przeszłości sekundy przestępne zostały dodane 30 czerwca lub 31 grudnia.
Czas UTC, zgodnie z definicją, rozpoczyna się 10 sekund za TAI (czas atomowy). 10 sekund zostało dodanych w 1972 roku do czasu TAI, aby pomieścić się na sekundy przestępne, które zgromadziły się w tym momencie. Biorąc pod uwagę wstawienie kolejnych 27 sekund przestępnych od tego czasu, czas UTC wynosi obecnie 37 sekund za tai (zegar atomowy).
Elementy członkowskie
Nazwa/nazwisko | opis |
---|---|
from_sys |
Statyczny. Konwertuje element na sys_time .utc_time |
now |
Statyczny. Zwraca bieżący czas. |
to_sys |
Statyczny. Konwertuje element na utc_time .sys_time |
Inne niż elementy członkowskie
Nazwa/nazwisko | opis |
---|---|
from_stream |
Przeanalizuj element utc_time z danego strumienia przy użyciu określonego formatu. |
get_leap_second_info |
Pobiera leap_second_info, który wskazuje, czy podany czas określa godzinę wstawienia sekundy przestępnej. Zawiera również sumę wszystkich sekund przestępnych między 1 stycznia 1970 r. a określonym czasem trwania. |
operator<< |
utc_time Wyprowadź element do danego strumienia. |
Aliasy typu wygody
Nazwa/nazwisko | opis |
---|---|
utc_clock::duration |
W implementacji firmy Microsoft jest to synonim .duration<system_clock::rep, system_clock::period> Reprezentuje czas trwania mierzony w jednostkach 100 nanosekund. |
utc_clock::period |
Implementacja firmy Microsoft definiuje to jako synonim dla elementu system_clock::period . Reprezentuje czas w sekundach (100 nanosekund) między poszczególnymi znacznikami czasu trwania. |
utc_clock::rep |
Synonim typu (long long ) używanego do reprezentowania jednostek całkowitych w tym zegarze utc_clock::duration . |
utc_clock::time_point |
Synonim dla elementu time_point<utc_clock> . Służy do reprezentowania elementu dla tego zegara time_point . |
Powiązane
Nazwa/nazwisko | opis |
---|---|
utc_seconds |
Synonim dla using utc_seconds = utc_time<seconds>; |
utc_time |
Synonim reprezentuje template<class Duration> using utc_time = time_point<utc_clock, Duration>; element time_point dla elementu utc_clock . Należy określić czas trwania. Zdefiniowane w std::chrono |
Stałe publiczne
Nazwa/nazwisko | opis |
---|---|
[utc_clock::is_steady constant] (#is_steady_constant) |
Wskazuje, czy typ zegara jest stały. Jego wartość to false . |
Wymagania
Nagłówek: <chrono>
(od C++20)
Przestrzeń nazw: std::chrono
Opcja kompilatora: /std:c++latest
from_sys
Metoda statyczna, która konwertuje sys_time
element na .utc_time
template<class Duration>
static utc_time<common_type_t<Duration, seconds>>
from_sys(const sys_time<Duration>& t);
Parametry
t
Element sys_time
do konwersji.
Wartość zwracana
Zestaw utc_time
czasu, który najbardziej przybliża sys_time
t
wartość . Jeśli bezpośrednie mapowanie nie istnieje, zostanie zwrócona time_point podczas wstawiania sekundy przestępnej i ostatnia godna reprezentowania wartość sys_time
przed wstawieniem sekundy przestępnej.
to_sys
Metoda statyczna, która konwertuje utc_time
element na .sys_time
template<class Duration>
static sys_time<common_type_t<Duration, seconds>>
to_sys(const utc_time<Duration>& t);
Parametry
t
Element utc_time
do konwersji.
Wartość zwracana
Zestaw sys_time
ustawiony na odpowiedni punkt w czasie jako t
. Jeśli mapowanie bezpośrednie nie istnieje, jest to ostatnia godna reprezentowania wartość przed wstawieniem sekundy przestępnej w przypadku, który t
reprezentuje punkt w czasie, gdy wstawienie sekundy przestępnej. Dodanie sekundy przestępnej jest określane jako "wstawienie sekundy przestępnej". Po wstawieniu sekundy przestępnej czas zbliża się do północy następuje z 23 godzin 59 minut 59 sekund do 23 godzin 59 minut 60 sekund (wstawiony skok sekundy), a następnie do 0 godzin 0 minut 0 sekund (północ). W przeszłości sekundy przestępne zostały dodane 30 czerwca lub 31 grudnia.
is_steady
Wartość statyczna określająca, czy typ zegara jest stały. W implementacji is_steady_constant
firmy Microsoft wartość to false
. Ponieważ element utc_clock
nie jest stały, nie można niezawodnie używać tego zegara, aby upłynąć czas przed zdarzeniem, czas po zdarzeniu i odjąć je, aby uzyskać czas trwania zdarzenia, ponieważ zegar może być dostosowywany w tym czasie.
static const bool is_steady = false;
now
Statyczna metoda zwracająca bieżącą godzinę UTC. Zwrócony czas obejmuje sekundy przestępne.
static time_point now() noexcept;
Wartość zwracana
time_point
Obiekt reprezentujący bieżący czas. Zwracany punkt czasu jest skutecznie from_sys(system_clock::now())
.
Zobacz też
<chrono>
file_clock class
gps_clock class
high_resolution_clock
local_t
Struct
steady_clock
Struct
system_clock
Struct
Klasa tai_clock
Odwołanie do plików nagłówka