tzdb
Yapı
Saat dilimi veritabanının bir kopyasını temsil eder.
Sözdizimi
struct tzdb; // C++20
Açıklamalar
IANA (İnternet Atanmış Numaralar Yetkilisi) saat dilimi veritabanının bir kopyasını temsil eder. Veritabanı, her saat dilimi ve yerel saat ayarlamalarının geçmişi hakkında bilgi içerir. Veritabanı hakkında daha fazla bilgi için bkz . Saat Dilimi Veritabanı.
Üyeler
Üye | Açıklama |
---|---|
leap_seconds |
Sıralanmış vector<leap_second> bir . A leap_second , artık saniyelerin geçmişte ne zaman eklendiğine ilişkin bir geçmiş sağlar. |
links |
Sıralanmış vector<time_zone_link> bir . time_zone_link belirli bir saat dilimi için alternatif ad sağlar. |
version |
std::string Veritabanı sürümünü içeren. |
zones |
Sıralanmış vector<time_zone> bir . , time_zone belirli bir alan için saat dilimi kurallarının tam geçmişine sahiptir. |
Bu üyelerin nasıl kullanılacağına ilişkin bir örnek için, bu konunun sonundaki Örnek: leap_seconds
, links
, zones
bölümüne bakın.
Üye işlevleri
Veri Akışı Adı | Açıklama |
---|---|
current_zone |
Yerel saat dilimini alır. |
locate_zone |
Belirtilen saat dilimini alır. |
current_zone
Bilgisayarın yerel saat dilimini alır.
time_zone* current_zone() const; // C++20
Dönüş değeri
time_zone
Bilgisayarın yerel saat dilimini temsil eden işaretçi.
Örnek: current_zone
Bu örnekte geçerli saat dilimini alma gösterilmektedir.
// 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
Belirtilen saat dilimini alır.
const time_zone* locate_zone(string_view name) const;
Örnek: locate_zone
Bu örnekte ada göre saat dilimi alma gösterilmektedir.
// 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
Örnek: leap_seconds, links, zones
Bu örnek, çeşitli tzdb
veri üyelerini kullanmayı gösterir.
// 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
...
Gereksinimler
Üstbilgi: <chrono>
Ad alanı: std::chrono
Derleyici Seçeneği: /std:c++latest
Ayrıca bkz.
<chrono>
tzdb_list
time_zone_link
Üst Bilgi Dosyaları Başvurusu
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin