Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Struct
Fornisce un'interfaccia di basso livello alle informazioni sul fuso orario sul risultato della conversione di un local_time oggetto in un oggetto sys_time.
Sintassi
struct local_info;
Membri
| Funzione | Descrizione |
|---|---|
result |
Codice che descrive il risultato della conversione. |
first, second |
Risultato della conversione. |
Costanti membro
| Nome | valore | Descrizione |
|---|---|---|
unique |
0 | Il risultato della conversione è univoco. |
nonexistent |
1 | Non esiste un oggetto corrispondente sys_time in cui convertire .local_time |
ambiguous |
2 | Il risultato della conversione è ambiguo. |
Membri non membri
| Funzione | Descrizione |
|---|---|
operator<< |
Restituire un oggetto local_info a un flusso. |
result
Risultato della conversione di un oggetto local_time in un oggetto sys_time.
int result;
Valore restituito
Il risultato può essere uno dei valori seguenti:
unique: l'oggettolocal_timeè stato convertito correttamente in un oggettosys_time.nonexistent: non esiste un mapping dalocal_timeasys_time.ambiguous: lelocal_timeterre durante una transizione tra l'ora legale e l'ora solare e quindi possono essere convertite in duesys_timevalori.
Osservazioni:
Per informazioni su come first e second vengono impostati in resultbase a , vedere la sezione seguente su first, second.
first, second
Fornisce il risultato della conversione di un oggetto local_time in un oggetto sys_time.
sys_seconds begin;
sys_seconds end;
Valore restituito
first e second sono impostati in base ai result seguenti:
result |
first |
second |
|---|---|---|
unique |
Contiene il valore di local_time convertito in sys_time |
inizializzato zero |
nonexistent |
Oggetto sys_info che termina poco prima del local_time |
Oggetto sys_info che inizia subito dopo l'oggetto local_time. |
ambiguous |
Oggetto sys_info che termina subito dopo il local_time |
Oggetto sys_info che inizia subito prima dell'oggetto local_time. |
ambiguous codice risultato
Durante la transizione dall'ora legale all'ora solare in autunno, gli orologi ottengono essenzialmente un'ora in più. Questo può generare confusione perché la transizione all'ora solare significa perdere un'ora? Eseguendo il fallback di un'ora, l'ora prima della transizione verrà ripetuta dopo che l'orologio viene regolato per l'ora solare. Prendere in considerazione la modifica all'ora solare a New York, che si verifica la prima domenica a novembre alle 2:00. Prima di tutto, le 1:00 di mattina passano. Alle 2:00, l'orologio passa all'ora solare, quindi ora è di nuovo alle 1:00. Ciò significa che l'orario tra le 1:00 e le 2:00 sarà "ripetuto", aggiungendo in modo efficace un'ora. Per un esempio, vedere ambiguous_local_time.
Se un local_time oggetto specifica un'ora durante l'ora "extra", non è chiaro come convertirla. L'ora convertita deve essere considerata come la "prima" volta che si verifica l'ora o il "secondo"? Se l'enumerazione choose non viene specificata per indicare quale deve essere, aspettarsi result di essere impostata su ambiguouse first rifletterà second le due opzioni per l'ora in cui potrebbe local_time essere convertita.
nonexistent codice risultato
Durante la transizione dall'ora solare all'ora legale in primavera, gli orologi perdono essenzialmente un'ora. Questo può generare confusione perché la transizione all'ora legale significa aggiungere un'ora? Per "springing forward" un'ora, l'ora successiva alla transizione viene effettivamente rimossa. Prendere in considerazione la modifica all'ora legale a New York, che si verifica la seconda domenica a marzo alle 2:00. Alle 2:00, l'orologio passa all'ora legale e ora legge le 3:00. Se l'oggetto local_time convertito è 2:30am, ad esempio, l'ora è durante il periodo in cui è stato "rimosso" e quindi si può prevedere result di avere il nonexistent codice. Per un esempio, vedere nonexistent_local_time.
Esempio: ottenere un 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)
Requisiti
Intestazione: <chrono>
Spazio dei nomi: std::chrono
Opzione del compilatore: /std:c++latest
<chrono>
ambiguous_local_time eccezione
choose enumerazione
Classe file_clock
high_resolution_clock
local_t Struct
non_existent eccezione
system_clock Struct
Classe tai_clock
Classe utc_clock
Riferimento file di intestazione