tzdb Struct

Reprezentuje kopię bazy danych strefy czasowej.

Składnia

struct tzdb; // C++20

Uwagi

Reprezentuje kopię bazy danych strefy czasowej IANA (Internet Assigned Numbers Authority). Baza danych zawiera informacje o każdej strefie czasowej i historii korekt czasu lokalnego. Aby uzyskać więcej informacji na temat bazy danych, zobacz Baza danych strefy czasowej.

Członkowie

Element członkowski opis
leap_seconds Posortowana vector<leap_second>. Element A leap_second zawiera historię dodawania sekund przestępnych w przeszłości.
links Posortowana vector<time_zone_link>. Time_zone_link zawiera alternatywną nazwę dla danej strefy czasowej.
version Element std::string zawierający wersję bazy danych.
zones Posortowana vector<time_zone>. Element time_zone ma pełną historię reguł strefy czasowej dla określonego obszaru.

Aby zapoznać się z przykładem używania tych elementów członkowskich, zobacz Przykład: leap_seconds, links, zones w pobliżu końca tego tematu.

Funkcje składowe

Nazwa/nazwisko opis
current_zone Pobiera lokalną strefę czasową.
locate_zone Pobiera określoną strefę czasową.

current_zone

Pobiera lokalną strefę czasową komputera.

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

Wartość zwracana

Wskaźnik do time_zone , który reprezentuje lokalną strefę czasową komputera.

Przykład: current_zone

W tym przykładzie pokazano pobieranie bieżącej strefy czasowej.

// 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

Pobiera określoną strefę czasową.

const time_zone* locate_zone(string_view name) const;

Przykład: locate_zone

W tym przykładzie pokazano pobieranie strefy czasowej według nazwy.

// 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

W tym przykładzie pokazano użycie różnych tzdb elementów członkowskich danych.

// 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
...

Wymagania

Nagłówka:<chrono>

Obszaru nazw:std::chrono

Opcja kompilatora:/std:c++latest

Zobacz też

<chrono>
tzdb_list
time_zone_link
Odwołanie do plików nagłówka