Freigeben über


tzdb-Struktur

Stellt eine Kopie der Zeitzonendatenbank dar.

Syntax

struct tzdb; // C++20

Hinweise

Stellt eine Kopie der Zeitzonendatenbank IANA (Internet Assigned Numbers Authority) dar. Die Datenbank enthält Informationen zu jeder Zeitzone und zum Verlauf der Anpassungen der lokalen Zeit. Weitere Informationen zur Datenbank finden Sie unter Zeitzonendatenbank.

Member

Member Beschreibung
leap_seconds Eine sortierte vector<leap_second>. A leap_second stellt einen Verlauf des Zeitpunkts bereit, zu dem Schaltsekunden in der Vergangenheit hinzugefügt wurden.
links Eine sortierte vector<time_zone_link>. Ein time_zone_link stellt den alternativen Namen für eine bestimmte Zeitzone bereit.
version A std::string containing the database version.
zones Eine sortierte vector<time_zone>. A time_zone verfügt über den vollständigen Verlauf der Zeitzonenregeln für einen bestimmten Bereich.

Ein Beispiel für die Verwendung dieser Member finden Sie unter Beispiel: leap_seconds, links, in zones der Nähe des Endes dieses Themas.

Memberfunktionen

Name Beschreibung
current_zone Ruft die lokale Zeitzone ab.
locate_zone Ruft die angegebene Zeitzone ab.

current_zone

Ruft die lokale Zeitzone des Computers ab.

time_zone* current_zone() const; // C++20

Rückgabewert

Ein Zeiger auf die, die time_zone die lokale Zeitzone des Computers darstellt.

Beispiel: current_zone

In diesem Beispiel wird das Abrufen der aktuellen Zeitzone veranschaulicht.

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    auto& db = get_tzdb();
    std::cout << "Current zone: " << db.current_zone()->name();
    
    return 0;
}
Current zone: America/Los_Angeles

locate_zone

Ruft die angegebene Zeitzone ab.

const time_zone* locate_zone(string_view name) const;

Beispiel: locate_zone

In diesem Beispiel wird das Abrufen einer Zeitzone anhand des Namens veranschaulicht.

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    auto& db = get_tzdb();
    std::cout << "Locate zone : " << db.locate_zone("America/New_York")->name() << "\n";
    
    return 0;
}
Locate zone : America/New_York

In diesem Beispiel wird die Verwendung verschiedener tzdb Datenmmber veranschaulicht.

// compile using: /std:c++latest
#include <iostream>
#include <chrono>

using namespace std::chrono;

int main()
{
    std::cout << "Leap seconds:\n";
    std::for_each(db.leap_seconds.begin(), db.leap_seconds.end(),
        [](const leap_second& ls)
        {
            std::cout << ls.date() << "\n";
        });

    std::cout << "Links:\n";
    std::for_each(db.links.begin(), db.links.end(),
        [](const time_zone_link& l)
        {
            std::cout << "Name: " << l.name() << "\t\tTarget:" << l.target() << '\n';
        });

    std::cout << "\nTime Zone descriptions:\n";
    std::for_each(db.zones.begin(), db.zones.end(),
        [](const time_zone& z)
        {
            std::cout << "Zone: " << z.name() << "\n";
        });
    
    return 0;
}
Leap seconds:
1972-07-01 00:00:00
1973-01-01 00:00:00
1974-01-01 00:00:00
...
Links:
Name: ACT               Target:Australia/Darwin
Name: AET               Target:Australia/Sydney
Name: AGT               Target:America/Buenos_Aires
Name: ART               Target:Africa/Cairo
...
Time Zone descriptions:
Zone: Africa/Abidjan
Zone: Africa/Accra
Zone: Africa/Addis_Ababa
...

Anforderungen

Header: <chrono>

Namespace:std::chrono

Compileroption: /std:c++latest

Siehe auch

<chrono>
tzdb_list
time_zone_link
Headerdateienreferenz