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: leap_seconds, links, zones
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