Freigeben über


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: Die local_time Datei wurde erfolgreich in ein sys_time.
  • nonexistent: Es gibt keine Zuordnung von der local_time bis zur sys_time.
  • ambiguous: Die local_time Landungen während eines Übergangs zwischen Sommerzeit und Standardzeit und können daher in zwei sys_time Werte umgewandelt werden.

Hinweise

Informationen dazu, wie und wie first sie second festgelegt resultwerden, 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 ambiguousist, 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