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