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::duration darzustellen. |
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