Bagikan melalui


Struktur tzdb

Mewakili salinan database zona waktu.

Sintaks

struct tzdb; // C++20

Keterangan

Mewakili salinan database zona waktu IANA (Internet Assigned Numbers Authority). Database berisi informasi tentang setiap zona waktu dan riwayat penyesuaian waktu lokalnya. Untuk informasi selengkapnya tentang database, lihat Database Zona Waktu.

Anggota

Anggota Deskripsi
leap_seconds Diurutkan vector<leap_second>. A leap_second menyediakan riwayat kapan lompatan detik ditambahkan di masa lalu.
links Diurutkan vector<time_zone_link>. time_zone_link menyediakan nama alternatif untuk zona waktu tertentu.
version Yang std::string berisi versi database.
zones Diurutkan vector<time_zone>. A time_zone memiliki riwayat lengkap aturan zona waktu untuk area tertentu.

Untuk contoh cara menggunakan anggota ini, lihat Contoh: leap_seconds, links, zones di dekat akhir topik ini.

Fungsi anggota

Nama Deskripsi
current_zone Mendapatkan zona waktu lokal.
locate_zone Mendapatkan zona waktu yang ditentukan.

current_zone

Mendapatkan zona waktu lokal komputer.

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

Nilai hasil

Penunjuk ke time_zone yang mewakili zona waktu lokal komputer.

Contoh: current_zone

Contoh ini menunjukkan mendapatkan zona waktu saat ini.

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

Mendapatkan zona waktu yang ditentukan.

const time_zone* locate_zone(string_view name) const;

Contoh: locate_zone

Contoh ini menunjukkan mendapatkan zona waktu berdasarkan nama.

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

Contoh ini menunjukkan penggunaan berbagai tzdb anggota data.

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

Persyaratan

Header: <chrono>

kumpulan nama XML: std::chrono

Opsi Pengkompilasi: /std:c++latest

Lihat juga

<chrono>
tzdb_list
time_zone_link
Referensi File Header