Freigeben über


utc_clock-Klasse

Eine Uhr für koordinierte Weltzeit (UTC), die manchmal als Greenwich Mean Time (GMT) oder Zuluzeit bezeichnet wird. Die Ortszeit wird je nach Zeitzone von UTC-Zeit angepasst.

Syntax

class utc_clock; // C++20

Hinweise

Diese Uhr misst die Zeit seit 00:00:00 UTC am Donnerstag, dem 1. Januar 1970. Diese Uhr macht Schaltsekunden aus und ist die Basis für zivile Zeit auf der ganzen Welt.

Die Utc-Zeitrate basiert auf der Internationalen Atomzeit (TAI), die Atomuhren verwendet, um die Zeit nachzuverfolgen. Ein Schaltsekunden wird jedoch gelegentlich zu UTC-Zeit hinzugefügt, um die Differenz zwischen UTC-Zeit und UT1 (Sonnenzeit) innerhalb von +- 0,9 Sekunden beizubehalten.

Es gibt eine Diskrepanz zwischen der Zeit, die von Atomuhren gehalten wird, und der Zeit, die gehalten wird, indem die Drehung der Erde nachverfolgt wird. Das liegt daran, dass die Drehgeschwindigkeit der Erde unregelmäßig ist und im Allgemeinen im Laufe der Zeit um etwa eine Sekunde alle 1,5 Jahre verlangsamt (obwohl manchmal die Drehgeschwindigkeit der Erde steigt). Eine Anpassung des zweiten Sprungs hält die UTC-Nachverfolgungszeit innerhalb einer Sekunde der durchschnittlichen Länge eines Tages.

Ab diesem Schreiben wurden 27 Schaltsekunden hinzugefügt, seit die Praxis des Einfügens von Schaltsekunden 1972 begann. Der International Earth Rotation and Reference Systems Service (IERS) bestimmt, wann ein Schalt second hinzugefügt wird. Das Hinzufügen eines Zweiten Sprungs wird als "Einfügemarke" bezeichnet. Wenn ein Schaltsekunden eingefügt wird, wird die Zeit, wie es um Mitternacht liegt, von 23 Stunden 59 Minuten 59 Sekunden bis 23 Stunden 59 Minuten 60 Sekunden (der eingefügte Schalt sekunde) und dann auf 0 Stunden 0 Minuten 0 Sekunden (Mitternacht) fortgesetzt. Historisch wurden Schaltsekunden am 30. Juni oder 31. Dezember hinzugefügt.

UTC-Zeit beginnt per Definition 10 Sekunden hinter TAI (Atomzeit). 10 Sekunden wurden 1972 zu TAI-Zeit hinzugefügt, um die Schaltsekunden aufzunehmen, die sich an diesem Punkt angesammelt hatten. Angesichts der Einfügung weiterer 27 Schaltsekunden liegt die UTC-Zeit derzeit 37 Sekunden hinter TAI (Atomuhr).

Mitglieder

Name Beschreibung
from_sys Statisch. Konvertiert ein sys_time -Element in ein utc_time-Element.
now Statisch. Gibt die aktuelle Uhrzeit zurück.
to_sys Statisch. Konvertiert ein utc_time -Element in ein sys_time-Element.

Nicht-Member

Name Beschreibung
from_stream Analysieren Eines utc_time aus dem angegebenen Datenstrom mithilfe des angegebenen Formats.
get_leap_second_info Ruft einen leap_second_info ab, der angibt, ob die angegebene Zeit einen Zeitpunkt angibt, zu dem ein Schalt sekunden eingefügt wurde. Sie enthält auch die Summe aller Schaltsekunden zwischen dem 1. Januar 1970 und der angegebenen Dauer.
operator<< Gibt einen utc_time an den angegebenen Datenstrom aus.

Komforttypaliasen

Name Beschreibung
utc_clock::duration In der Implementierung von Microsoft ist es ein Synonym für duration<system_clock::rep, system_clock::period>. Sie stellt eine Zeitdauer dar, die in Einheiten von 100 Nanosekunden gemessen wird.
utc_clock::period Die Implementierung von Microsoft definiert dies als Synonym für system_clock::period. Sie stellt die Zeit in Sekunden (100 Nanosekunden) zwischen jedem Teilstrich in der Dauer dar.
utc_clock::rep Ein Synonym für den Typ (long long), der verwendet wird, um die integralen Einheiten in dieser Uhr utc_clock::durationdarzustellen.
utc_clock::time_point Ein Synonym für time_point<utc_clock>. Wird verwendet, um eine time_point für diese Uhr darzustellen.

Related

Name Beschreibung
utc_seconds Ein Synonym für using utc_seconds = utc_time<seconds>;
utc_time Ein Synonym für template<class Duration> using utc_time = time_point<utc_clock, Duration>;Represents a time_point for a utc_clock. Sie geben die Dauer an. Definiert in std::chrono

Öffentliche Konstanten

Name Beschreibung
[utc_clock::is_steady constant](#is_steady_constant) Gibt an, ob der Takttyp stabil ist. Sein Wert lautet false.

Anforderungen

Header: <chrono> (seit C++20)

Namespace:std::chrono

Compileroption: /std:c++latest

from_sys

Statische Methode, die eine sys_time in eine utc_time.

template<class Duration>
static utc_time<common_type_t<Duration, seconds>>
from_sys(const sys_time<Duration>& t);

Parameter

t
Die zu konvertierende sys_time.

Rückgabewert

Eine utc_time Einstellung auf die Uhrzeit, die sich am ehesten nähert.sys_time t Wenn keine direkte Zuordnung vorhanden ist, wird die time_point während einer zweiten Einfügemarke des Schaltvorgangs und der letzte darstellbare Wert vor sys_time der Einfügung des Zweiten Sprungs zurückgegeben.

to_sys

Statische Methode, die eine utc_time in eine sys_time.

template<class Duration>
static sys_time<common_type_t<Duration, seconds>>
to_sys(const utc_time<Duration>& t);

Parameter

t
Die zu konvertierende utc_time.

Rückgabewert

Der sys_time Wert auf den entsprechenden Zeitpunkt als t. Wenn eine direkte Zuordnung nicht vorhanden ist, ist sie der letzte darstellbare Wert, bevor ein Schaltabgleich eingefügt wird, in dem Fall, der einen Zeitpunkt darstellt, t zu dem ein Schaltziff eingefügt wurde. Das Hinzufügen eines Zweiten Sprungs wird als "Einfügemarke" bezeichnet. Wenn ein Schaltsekunden eingefügt wird, geht die Zeit bei Mitternacht von 23 Stunden 59 Minuten 59 Sekunden bis 23 Stunden 59 Minuten 60 Sekunden (der eingefügte Schalt zweite) und dann auf 0 Stunden 0 Minuten 0 Sekunden (Mitternacht). In der Vergangenheit wurden Schaltsekunden entweder am 30. Juni oder 31. Dezember hinzugefügt.

is_steady

Ein statischer Wert, der angibt, ob der Uhrtyp gleichmäßig ist. In der Implementierung is_steady_constant von Microsoft lautet false. Da dies utc_clock nicht stabil ist, können Sie diese Uhr nicht zuverlässig verwenden, um die Zeit vor einem Ereignis, die Zeit nach einem Ereignis zu nehmen, und subtrahieren Sie sie, um die Dauer des Ereignisses zu erhalten, da die Uhr während dieser Zeit angepasst werden kann.

static const bool is_steady = false;

now

Statische Methode, die die aktuelle UTC-Zeit zurückgibt. Die zurückgegebene Zeit enthält Schaltsekunden.

static time_point now() noexcept;

Rückgabewert

Ein time_point Objekt, das die aktuelle Uhrzeit darstellt. Der zurückgegebene Zeitpunkt ist effektiv from_sys(system_clock::now()).

Siehe auch

<chrono>
file_clock class
gps_clock class
high_resolution_clock
local_t-Struktur
steady_clock-Struktur
system_clock-Struktur
tai_clock-Klasse
Headerdateienreferenz