Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Struct
Fornece uma interface de baixo nível para informações de fuso horário sobre o resultado da conversão de um local_time em um sys_time.
Sintaxe
struct local_info;
Membros
| Função | Descrição |
|---|---|
result |
Um código que descreve o resultado da conversão. |
first, second |
O resultado da conversão. |
Constantes de membros
| Nome | Valor | Descrição |
|---|---|---|
unique |
0 | O resultado da conversão é exclusivo. |
nonexistent |
1 | Não há um sys_time correspondente para converter para local_time. |
ambiguous |
2 | O resultado da conversão é ambíguo. |
Não membros
| Função | Descrição |
|---|---|
operator<< |
Gere um local_info para um fluxo. |
result
O resultado de converter um local_time para um sys_time.
int result;
Valor retornado
O resultado pode ter um dos seguintes valores:
unique: olocal_timefoi convertido com êxito em umsys_time.nonexistent: não há um mapeamento dolocal_timepara osys_time.ambiguous: olocal_timedurante uma transição fica entre o horário de verão e o horário padrão e, portanto, pode ser convertido em dois valoressys_time.
Comentários
Para obter informações sobre como first e second são definidos com base em result, consulte a seção a seguir sobre first, second.
first, second
Fornece o resultado de converter um local_time em um sys_time.
sys_seconds begin;
sys_seconds end;
Valor retornado
first e second são definidos com base em result da seguinte maneira:
result |
first |
second |
|---|---|---|
unique |
Contém o valor de local_time convertido em sys_time |
inicializado zero |
nonexistent |
Um sys_info que termina pouco antes do local_time |
Um sys_info que começa logo após o local_time. |
ambiguous |
Um sys_info que termina logo após o local_time. |
Um sys_info que começa pouco antes do local_time. |
ambiguous result code
Durante a transição do horário de verão para o horário padrão no outono, os relógios essencialmente ganham uma hora extra. Pode ser confuso, pois a transição para o horário normal não significa perder uma hora? Ao voltar uma hora, o horário antes da transição será repetido depois que o relógio se ajustar para o horário normal. Pense na mudança no horário normal em Nova York, que acontece no primeiro domingo de novembro às 2h da manhã. Primeiro, passa 1h da manhã. Às 2h, o relógio faz a transição para o horário normal, então agora são 1h da manhã novamente. Isso significa que o horário entre 1h e 2h será "repetido", adicionando efetivamente uma hora. Para ver um exemplo, consulte ambiguous_local_time.
Se um local_time especificar um horário durante essa hora "extra", não fica claro como convertê-lo. O horário convertido deve ser tratado como a "primeira" vez que ocorre essa hora ou a "segunda"? Se a enumeração choose não for especificada para indicar qual deve ser, espere result ser definido como ambiguous, e first e second refletirá as duas opções para a hora em que o local_time poderá ser convertido.
nonexistent result code
Durante a transição do horário padrão para o horário de verão na primavera, os relógios essencialmente perdem uma hora. Isso pode ser confuso porque a transição para o horário de verão não significa adicionar uma hora? Ao "avançar" uma hora, a hora seguinte à transição é efetivamente removida. Considere a mudança para o horário de verão em Nova York, que acontece no segundo domingo de março às 2h. Às 2h, o relógio faz a transição para o horário de verão e agora lê 3h. Se a conversão local_time for 2h30m, por exemplo, esse tempo será durante o período que foi "removido" e, portanto, você poderá esperar que result tenha o código nonexistent. Para ver um exemplo, consulte nonexistent_local_time.
Exemplo: obter um local_info
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
const auto& timeZoneDatabase = get_tzdb();
const auto& currentZone = timeZoneDatabase.current_zone();
local_time<system_clock::duration> lt = currentZone->to_local(system_clock::now());
auto localInfo = currentZone->get_info(lt);
std::cout << "local_time: " << lt << "\n";
std::cout << localInfo << "\n";
return 0;
}
local_time: 2021-09-08 15:37:57.6853963
result: unique, first: (begin: 2021-03-14 10:00:00, end: 2021-11-07 09:00:00, offset: -25200s, save: 60min, abbrev: PDT)
Requisitos
Cabeçalho: <chrono>
Namespace: std::chrono
Opção do compilador: /std:c++latest
<chrono>
ambiguous_local_time exception
Enumeração choose
file_clock classe
high_resolution_clock
Struct local_t
non_existent exception
Struct system_clock
tai_clock classe
utc_clock classe
Referência de Arquivos de Cabeçalho