Partilhar via


Struct tzdb

Representa uma cópia do banco de dados de fuso horário.

Sintaxe

struct tzdb; // C++20

Comentários

Representa uma cópia do banco de dados de fuso horário IANA (Autoridade de Números Atribuídos à Internet). O banco de dados contém informações sobre cada fuso horário e seu histórico de ajustes de horário local. Para obter mais informações sobre o banco de dados, consulte Banco de dados de Fuso Horário.

Membros

Membro Descrição
leap_seconds Um vector<leap_second> classificado. Um leap_second fornece um histórico de quando segundos bissextos foram adicionados no passado.
links Um vector<time_zone_link> classificado. Um time_zone_link fornece o nome alternativo para um determinado fuso horário.
version Um std::string que contém a versão do banco de dados.
zones Um vector<time_zone> classificado. Um time_zone tem o histórico completo de regras de fuso horário para uma área específica.

Para obter um exemplo de como usar esses membros, consulte Exemplo: leap_seconds, links, zones próximo do final deste tópico.

Funções de membro

Nome Descrição
current_zone Obtém o fuso horário local.
locate_zone Obtém o fuso horário especificado.

current_zone

Obtém o fuso horário local do computador.

time_zone* current_zone() const; // C++20

Valor retornado

Um ponteiro para o time_zone que representa o fuso horário local do computador.

Exemplo: current_zone

Este exemplo demonstra a obtenção do fuso horário atual.

// 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

Obtém o fuso horário especificado.

const time_zone* locate_zone(string_view name) const;

Exemplo: locate_zone

Este exemplo demonstra a obtenção de um fuso horário por nome.

// 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

Este exemplo demonstra o uso de vários membros de dados tzdb.

// 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
...

Requisitos

Cabeçalho: <chrono>

Namespace: std::chrono

Opção do compilador: /std:c++latest

Confira também

<chrono>
tzdb_list
time_zone_link
Referência de Arquivos de Cabeçalho