Udostępnij za pośrednictwem


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 twartość . 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