<chrono>

Fügen Sie den Standardheader <chrono> hinzu, um Klassen und Funktionen zu definieren, die Zeitdauern und Zeitzeiten darstellen und bearbeiten.

Ab Visual Studio 2015 hat sich die Implementierung steady_clock geändert, um die C++-Standardanforderungen für Beständigkeit und Monotonität zu erfüllen:

  • steady_clock basiert jetzt auf QueryPerformanceCounter()
  • high_resolution_clock ist jetzt ein Typedef für steady_clock die Microsoft C++-Implementierung, steady_clock::time_point ist jetzt typedef ein Für chrono::time_point<steady_clock>. Dies ist jedoch nicht unbedingt der Fall für andere Implementierungen.

Anforderungen

Header:<chrono>

Regionale Gesetzgeber nehmen gelegentlich Änderungen an Zeitzonen vor, und ein internationaler Standards body gibt an, wann neue Sprung sekunden berücksichtigt werden sollen. Eine Datenbank dieser Änderungen wurde zu Windows 10 hinzugefügt. Dies gilt insbesondere in folgenden Fällen:

Funktion Clientversion Serverversion
Zweite Datenbankupdates springen Windows 10 Version 1809 oder höher Windows Server 2019 oder höher
Unterstützung der Zeitzone Windows 10 Version 1903/19H1 oder höher Windows Server 2022 oder höher

Die Verwendung der Zeitzoneneinrichtungen in älteren Versionen von Windows führt zu einem Laufzeitfehler.

Namespace:std

Calendrische Typen

Name BESCHREIBUNG
common_type-Struktur Beschreibt Spezialisierungen der Klassenvorlage common_type für Instanziationen von duration und time_point.
-Klasse Ein Tag des Monats. Beispiel: der 25. Tag des Monats.
-Klasse Zeitintervall.
duration_values-Struktur Stellt bestimmte Werte für den duration-Vorlagenparameter Rep bereit.
-Klasse Teilt eine duration in Stunden:Minuten:Sekunden auf.
last_spec Wird verwendet, um das letzte Element in einem Monat wie den letzten Tag der Woche eines Monats (den letzten Dienstag vom Februar 2020) oder den letzten Tag eines Monats (den letzten Tag vom April 2019) anzugeben.
-Klasse Ein Datum und ein Wert für einen eingefügten Sprung sekunde.
leap_second_info-Struktur Die von get_leap_second_info zurückgegebenen Daten.
-Klasse Ein Monat eines Jahres. Beispielsweise Juli.
-Klasse Ein bestimmter Tag eines bestimmten Monats. Beispiel: 30. Juli.
-Klasse Der letzte Tag eines Monats.
-Klasse Der n. Wochentag eines bestimmten Monats.
-Klasse Der n. Wochentag eines bestimmten Monats.
-Klasse Ein Zeitpunkt.
-Klasse Ein Tag der Woche.
-Klasse Der letzte Wochentag eines Monats.
-Klasse Kombiniert einen Wochentag mit einem Index, der den Wochentag des Monats darstellt.
-Klasse Ein Jahr im gregorianischen Kalender.
-Klasse Ein Jahr und Monat. Der Tag wird nicht angegeben.
-Klasse Ein Jahr, Monat und Tag.
-Klasse Der letzte Tag eines bestimmten Monats und Jahres.
-Klasse Ein bestimmtes Jahr, Monat und n. Wochentag des Monats.
-Klasse Ein bestimmtes Jahr, Monat und letzter Wochentag des Monats.

Uhren

Name BESCHREIBUNG
-Klasse Ein Alias für die Für die Uhr verwendete Uhr, die zum Ausdrücken von Zeitstempeln der Datei verwendet std::filesystem::file_time_typewird.
-Klasse Eine Uhr, die GPS-Zeit behält. Misst die Zeit ab dem ersten Sonntag vom 1. Januar 1980 um 00:00:00 UTC.
high_resolution_clock-Struktur Eine Uhr mit einem Nanosekunden-Tick-Zeitraum.
local_t-Struktur Eine Pseudouhr, die als Argument für die time_point Vorlage verwendet wird, um anzugeben, dass die time_point lokale Uhrzeit darstellt.
steady_clock-Struktur Eine steady Uhr. Diese Uhr wird für die Messung von Zeitintervallen bevorzugt.
system_clock-Struktur Eine Uhr basierend auf der Echtzeituhr des Systems.
-Klasse Misst internationale Atomzeit (TAI) ab Donnerstag, 1. Januar 1958 um 00:00:00 Uhr. Diese Uhr wird nicht für Sprung sekunden berücksichtigt.
-Klasse Misst die Zeit seit 00:00:00 UTC am Donnerstag, 1. Januar 1970. Diese Uhr führt zu Sprung sekunden und ist der Zeitstandard, der auf der ganzen Welt verwendet wird.

Zeitzonen

Name BESCHREIBUNG
choose Eine Enumeration, die angibt, wie die mehrdeutige Konvertierung einer in ein local_time .sys_time
local_info Stellt eine Schnittstelle mit niedriger Ebene zur Zeitzone bereit, um Informationen zum Ergebnis der Konvertierung einer local_time Datei in ein .sys_time
sys_info Stellt eine Schnittstelle mit niedriger Ebene zur Zeitzone bereit, um Informationen zum Ergebnis der Konvertierung einer sys_time Datei in ein .local_time
-Klasse Alle Zeitzonenübergänge für ein bestimmtes geografisches Gebiet.
-Klasse Ein alternativer Name für einen time_zone.
tzdb-Struktur Stellt eine Kopie der Zeitzonendatenbank dar.
-Klasse Eine Singleton-Liste der Zeitzonendatenbanken.
-Klasse Eine Kopplung einer time_zone und einer time_point mit einer angegebenen Genauigkeit.
zoned_traits-Struktur Wird verwendet, um einer anderen Standardzeitzone eine zoned_timeandere Standardzeitzone zuzuordnen und optional einen benutzerdefinierten Namen dieser Standardzeitzone zuzuordnen.

Ausnahmen

Name BESCHREIBUNG
ambiguous_local_time Fehler, der ausgelöst wird, wenn eine local_time in ein sys_time und das Ergebnis mehrdeutig ist.
nonexistent_local_time Fehler, der ausgelöst wird, wenn ein local_time Objekt in ein sys_time konvertiert wird und das Ergebnis eine Zeit ist, die nicht vorhanden ist.

Functions

Name BESCHREIBUNG
ceil(duration) Gibt das ceilduration Objekt als angegebenen Typ zurück.
ceil(time_point) Gibt das ceiltime_point Objekt als angegebenen Typ zurück.
clock_cast Wandelt eine Von einer time_point Uhr in eine Entsprechung time_point für eine andere Uhr um.
duration_cast Wandelt einen duration-Objekt in einen angegebenen Typ um.
floor(duration) Gibt das floorduration Objekt als angegebenen Typ zurück.
floor(time_point) Gibt das floortime_point Objekt als angegebenen Typ zurück.
from_stream() Analysieren Sie den Eingabedatenstrom in einen der std::chrono Zeit- oder Intervalltypen, zday. B. , monthweekday, year, usw. mithilfe des angegebenen Formats.
get_leap_second_info Ruft eine leap_second_info Struktur ab.
is_am Gibt an, ob ein hours Objekt AM ist.
is_pm Gibt an, ob ein hours Objekt PM ist.
locate_zone Ruft eine angegebene Zeitzone ab.
make12 Gibt ein hours 12-Stunden-Formular zurück.
make24 Gibt ein hours 24-Stunden-Formular zurück.
round(duration) Gibt ein duration Objekt zurück, das als angegebenen Typ gerundet ist.
round(time_point) Gibt ein time_point Objekt zurück, das als angegebenen Typ gerundet ist.
time_point_cast Wandelt einen time_point-Objekt in einen angegebenen Typ um.

Zeitzone im Zusammenhang

Name BESCHREIBUNG
current_zone Ruft die aktuelle Zeitzone ab.
get_tzdb Ruft den ersten Datenbankeintrag der Zeitzone ab.
get_tzdb_list Ruft die Liste der Datenbankeinträge der Zeitzone ab.
reload_tzdb Ruft einen aktualisierten Datenbankeintrag für Zeitzonen ab.
remote_version Sucht nach einem aktualisierten Datenbankeintrag für Zeitzonen.

Operatoren

Name BESCHREIBUNG
operator- Subtrahieren oder Verwerfen verschiedener <chrono> Objekte.
operator!= Ungleichheitsoperator, der mit verschiedenen <chrono> Objekten verwendet wird.
operator modulo Operator für Modulo-Vorgänge für duration-Objekte.
operator* Multiplikationsoperator für duration-Objekte.
operator/ Divisionsoperator für duration-Objekte.
operator/ Stellt Syntax zum Erstellen von Kalenderdaten bereit.
operator+ Zu verschiedenen <chrono> Objekten hinzufügen.
operator< Bestimmt, ob verschiedene <chrono> Objekte kleiner als eine andere sind.
operator<= Bestimmt, ob verschiedene <chrono> Objekte kleiner oder gleich einem anderen sind.
operator== Bestimmt, ob verschiedene <chrono> Objekte gleicheinander sind.
operator> Bestimmt, ob verschiedene <chrono> Objekte größer als eine andere sind.
operator>= Bestimmt, ob verschiedene <chrono> Objekte größer oder gleich einem anderen sind.

TypeDefs

Weitere Informationen zu Verhältnistypen, die in den folgenden Typedefs verwendet werden, finden Sie unter <ratio>.

Komforttypen duration

Name BESCHREIBUNG
typedef duration<long long, nano> nanoseconds; Synonym für einen duration Typ, der einen Teilstrichzeitraum von einem Milliardenwert (1/1.000.000.000) einer Sekunde hat.
typedef duration<long long, micro> microseconds; Synonym für einen duration Typ, der einen Teilstrichzeitraum (1/1.000.000) einer Sekunde hat.
typedef duration<long long, milli> milliseconds; Synonym für einen duration Typ, der einen Tickzeitraum von eintausend (1/1.000) einer Sekunde hat.
typedef duration<long long> seconds; Synonym für einen duration Typ, der einen Teilstrichzeitraum von 1 Sekunde aufweist.
typedef duration<int, ratio<60>> minutes; Synonym für einen duration Typ, der einen Teilstrichzeitraum von 1 Minute aufweist.
typedef duration<int, ratio<3600>> hours; Synonym für einen duration Typ, der einen Teilstrichzeitraum von 1 Stunde hat.

Komforttypen time_point

Name BESCHREIBUNG
file_time Ein Synonym für time_point<file_clock, Duration>. Represents a for a time_pointfile_clock. Sie geben z. Bfile_time<seconds> ft;. die Duration.
gps_seconds Ein Synonym für gps_time<seconds>; eine Anzahl von Sekunden, dargestellt durch eine, die einem time_point zugeordnet gps_clockist.
gps_time Ein Synonym für time_point<gps_clock, Duration>. Represents a for a time_pointgps_clock. Sie geben z. Bgps_time<milliseconds> gps;. die Duration.
local_days Ein Synonym für local_time<days>. Eine Anzahl von Tagen, dargestellt durch eine time_point , die keiner Zeitzone zugeordnet ist.
local_seconds Ein Synonym für local_time<seconds>.
local_time Ein Synonym für time_point<local_t, Duration>. Stellt eine time_point lokale Uhrzeit dar, die noch nicht einer Zeitzone zugeordnet ist. Sie geben z. Blocal_time<seconds> lt;. die Duration. A local_time ist eine ortsnahe Zeit. Es ist nicht die aktuelle lokale Uhrzeit der Computeruhr. Nur wenn Sie ein Paar mit einer local_timetime_zone erhalten, erhalten Sie einen Zeitpunkt, der in UTC-Zeit konvertiert werden kann, oder die Uhrzeit in einer bestimmten Zeitzone.
sys_days Ein Synonym für sys_time<days>. Eine Anzahl von Tagen seit der Epoche der system_clock, dargestellt durch eine, die einem time_point zugeordnet system_clockist.
sys_seconds Ein Synonym für sys_time<seconds>. Eine Anzahl von Nicht-Schalt sekunden seit der Epoche von system_clock (1. Januar 1970 00:00:00 UTC), dargestellt durch eine time_point , die einem zugeordnet system_clockist.
sys_time Ein Synonym für time_point<system_clock, Duration>. Sie geben z. Bsys_time<seconds> st;. die Duration. Stellt einen time_point zurückgegebenen Wert dar system_clock::now(). Es stellt Unix-Zeit dar, die genau der UTC-Zeit entspricht.
tai_seconds Ein Synonym für tai_time<seconds>. Eine Anzahl von Sekunden, dargestellt durch eine, die einem time_point zugeordnet tai_clockist.
tai_time Ein Synonym für time_point<tai_clock, Duration>. Sie geben z. Btai_time<seconds> tt;. die Duration. Represents a for a time_pointtai_clock.
utc_seconds Ein Synonym für utc_time<seconds>;
utc_time Ein Synonym für time_point<utc_clock, Duration>. Sie geben z. Butc_time<seconds> ut;. die Duration. Represents a for a time_pointutc_clock.

Typeigenschaften

Name BESCHREIBUNG
clock_time_conversion Ein Merkmal, das angibt, wie eine Uhr von einer time_point Uhr in eine andere konvertiert wird.
is_clock Überprüfen Sie, ob ein Typ eine Uhr ist.
treat_as_floating_point Überprüfen Sie, ob ein duration Teilstrich in einen anderen duration konvertiert werden kann, der einen anderen Teilstrich hat.

Literale

(C++11) Der <chrono> Header definiert die folgenden benutzerdefinierten Literale , die Sie für mehr Komfort, Typsicherheit und Wartungsfreundlichkeit Ihres Codes verwenden können. Diese Literale werden im literals::chrono_literals Inlinenamespace definiert und befinden sich im Bereich, wenn std::chrono er sich im Bereich befindet.

Deklaration BESCHREIBUNG
hours operator "" h(unsigned long long Val) Gibt die Stunden als Integralwert an.
duration<double, ratio<3600>> operator "" h(long double Val) Gibt die Stunden als Gleitkommawert an.
minutes (operator "" min)(unsigned long long Val) Gibt die Minuten als Integralwert an.
duration<double, ratio<60>> (operator "" min)( long double Val) Gibt die Minuten als Gleitkommawert an.
seconds operator "" s(unsigned long long Val) Gibt die Minuten als Integralwert an.
duration<double> operator "" s(long double Val) Gibt die Sekunden als Gleitkommawert an.
milliseconds operator "" ms(unsigned long long Val) Gibt die Millisekunden als Integralwert an.
duration<double, milli> operator "" ms(long double Val) Gibt die Millisekunden als Gleitkommawert an.
microseconds operator "" us(unsigned long long Val) Gibt die Mikrosekunden als Integralwert an.
duration<double, micro> operator "" us(long double Val) Gibt die Mikrosekunden als Gleitkommawert an.
nanoseconds operator "" ns(unsigned long long Val) Gibt die Nanosekunden als Integralwert an.
duration<double, nano> operator "" ns(long double Val) Gibt die Nanosekunden als Gleitkommawert an.

In den folgenden Beispielen wird gezeigt, wie Literale verwendet <chrono> werden:

constexpr auto day = 24h;
constexpr auto week = 24h* 7;
constexpr auto my_duration_unit = 108ms;

Siehe auch

Headerdateienreferenz