struct tzdb
Représente une copie de la base de données de fuseau horaire.
Syntaxe
struct tzdb; // C++20
Notes
Représente une copie de la base de données de fuseau horaire IANA (Internet Assigned Numbers Authority). La base de données contient des informations sur chaque fuseau horaire et son historique des ajustements de l’heure locale. Pour plus d’informations sur la base de données, consultez Base de données de fuseau horaire.
Membres
Membre | Description |
---|---|
leap_seconds |
Trié vector<leap_second> . Un leap_second historique du moment où des secondes de saut ont été ajoutées dans le passé. |
links |
Trié vector<time_zone_link> . Un time_zone_link fournit le nom de remplacement d’un fuseau horaire donné. |
version |
Contenant std::string la version de la base de données. |
zones |
Trié vector<time_zone> . A time_zone l’historique complet des règles de fuseau horaire pour une zone particulière. |
Pour obtenir un exemple d’utilisation de ces membres, consultez Exemple : leap_seconds
, links
, zones
près de la fin de cette rubrique.
Fonctions Membre
Nom | Description |
---|---|
current_zone |
Obtient le fuseau horaire local. |
locate_zone |
Obtient le fuseau horaire spécifié. |
current_zone
Obtient le fuseau horaire local de l’ordinateur.
time_zone* current_zone() const; // C++20
Valeur retournée
Pointeur vers le time_zone
fuseau horaire local de l’ordinateur.
Exemple : current_zone
Cet exemple montre comment obtenir le fuseau horaire actuel.
// 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
Obtient le fuseau horaire spécifié.
const time_zone* locate_zone(string_view name) const;
Exemple : locate_zone
Cet exemple montre comment obtenir un fuseau horaire par nom.
// 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
Exemple : leap_seconds, links, zones
Cet exemple illustre l’utilisation de différents tzdb
membres de données.
// 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
...
Spécifications
En-tête : <chrono>
Espace de noms : std::chrono
Option du compilateur : /std:c++latest
Voir aussi
<chrono>
tzdb_list
time_zone_link
Informations de référence sur les fichiers d’en-tête