local_info
-Struktur
Stellt eine Low-Level-Schnittstelle zu Zeitzoneninformationen zum Ergebnis der Konvertierung eines local_time
in ein sys_time
.
Syntax
struct local_info;
Member
Funktion | Beschreibung |
---|---|
result |
Ein Code, der das Ergebnis der Konvertierung beschreibt. |
first , second |
Das Ergebnis der Konvertierung. |
Memberkonstanten
Name | Wert | Beschreibung |
---|---|---|
unique |
0 | Das Ergebnis der Konvertierung ist eindeutig. |
nonexistent |
1 | Es ist kein entsprechender sys_time Wert vorhanden, in den local_time sie konvertiert werden soll. |
ambiguous |
2 | Das Ergebnis der Konvertierung ist mehrdeutig. |
Nicht-Member
Funktion | Beschreibung |
---|---|
operator<< |
Ausgabe eines local_info Datenstroms. |
result
Das Ergebnis der Konvertierung eines local_time
in ein sys_time
.
int result;
Rückgabewert
Das Ergebnis kann einer der folgenden Werte sein:
unique
: Dielocal_time
Datei wurde erfolgreich in einsys_time
.nonexistent
: Es gibt keine Zuordnung von derlocal_time
bis zursys_time
.ambiguous
: Dielocal_time
Landungen während eines Übergangs zwischen Sommerzeit und Standardzeit und können daher in zweisys_time
Werte umgewandelt werden.
Hinweise
Informationen dazu, wie und wie first
sie second
festgelegt result
werden, finden Sie im folgenden Abschnitt zufirst
, second
.
first
, second
Stellt das Ergebnis der Konvertierung eines local_time
in ein sys_time
.
sys_seconds begin;
sys_seconds end;
Rückgabewert
first
und second
werden wie result
folgt festgelegt:
result |
first |
second |
---|---|---|
unique |
Enthält den Wert der local_time konvertierten in sys_time |
Null initialisiert |
nonexistent |
Ein sys_info Ende unmittelbar vor dem local_time |
Ein sys_info , der direkt nach dem local_time . |
ambiguous |
Ein sys_info , das unmittelbar hinter dem local_time |
A sys_info that starts just before the local_time . |
ambiguous
Ergebniscode
Während des Übergangs von Sommerzeit zu Standardzeit im Herbst gewinnen Uhren im Wesentlichen eine zusätzliche Stunde. Dies kann verwirrend sein, weil der Übergang zur Standardzeit nicht bedeutet, dass eine Stunde verloren geht? Wenn Sie eine Stunde zurückfallen, wird die Stunde vor dem Übergang wiederholt, nachdem die Uhr für die Standardzeit angepasst wurde. Berücksichtigen Sie die Änderung der Standardzeit in New York, die am ersten Sonntag im November um 2:00 Uhr geschieht. Zuerst geht es um 1:00 Uhr. Um 2:00 Uhr wechselt die Uhr zur Standardzeit, so dass es jetzt wieder 1:00 Uhr ist. Das bedeutet, dass die Zeit zwischen 1 uhr und 2 Uhr "wiederholt" wird und effektiv eine Stunde hinzugefügt wird. Ein Beispiel finden Sie unter ambiguous_local_time
.
Wenn eine local_time
Zeit während dieser "zusätzlichen" Stunde angegeben wird, ist es nicht klar, wie sie konvertiert werden kann. Sollte die konvertierte Zeit als "erstes" Mal behandelt werden, wenn diese Stunde stattfindet, oder die "zweite"? Wenn die Enumeration choose
nicht angegeben ist, um anzugeben, was sie sein soll, erwarten Sie result
, dass sie festgelegt ambiguous
ist, und first
second
geben die beiden Optionen für die Uhrzeit local_time
der Konvertierung an.
nonexistent
Ergebniscode
Während des Übergangs von Standardzeit zu Sommerzeit im Frühling verlieren die Uhren im Wesentlichen eine Stunde. Dies kann verwirrend sein, weil der Übergang zur Sommerzeit nicht bedeutet, eine Stunde hinzuzufügen? Durch "Vorwärts springen" eine Stunde wird die Stunde nach dem Übergang effektiv entfernt. Berücksichtigen Sie die Änderung der Sommerzeit in New York, die am zweiten Sonntag im März um 2 Uhr geschieht. Um 2:00 Uhr wechselt die Uhr zur Sommerzeit und liest jetzt 3:00 Uhr. Wenn die local_time
Konvertierte beispielsweise 2:30 Uhr ist, liegt dieser Zeitraum in dem Zeitraum, der "entfernt" wurde, und sie können daher erwarten result
, dass der nonexistent
Code vorhanden ist. Ein Beispiel finden Sie unter nonexistent_local_time
.
Beispiel: Abrufen eines local_info
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
const auto& timeZoneDatabase = get_tzdb();
const auto& currentZone = timeZoneDatabase.current_zone();
local_time<system_clock::duration> lt = currentZone->to_local(system_clock::now());
auto localInfo = currentZone->get_info(lt);
std::cout << "local_time: " << lt << "\n";
std::cout << localInfo << "\n";
return 0;
}
local_time: 2021-09-08 15:37:57.6853963
result: unique, first: (begin: 2021-03-14 10:00:00, end: 2021-11-07 09:00:00, offset: -25200s, save: 60min, abbrev: PDT)
Anforderungen
Header: <chrono>
Namespace:std::chrono
Compileroption: /std:c++latest
<chrono>
ambiguous_local_time
Ausnahme
choose
-Enumeration
file_clock
-Klasse
high_resolution_clock
local_t
-Struktur
non_existent
Ausnahme
system_clock
-Struktur
tai_clock
-Klasse
utc_clock
-Klasse
Headerdateienreferenz