Partager via


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

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