local_info
Struct
Poskytuje rozhraní nízké úrovně informace o výsledku převodu local_time
na sys_time
.
Syntaxe
struct local_info;
Členové
Function | Popis |
---|---|
result |
Kód popisující výsledek převodu. |
first , second |
Výsledek převodu. |
Konstanty členů
Jméno | Hodnota | Popis |
---|---|---|
unique |
0 | Výsledek převodu je jedinečný. |
nonexistent |
0 | Neexistuje odpovídající sys_time převod na local_time . |
ambiguous |
2 | Výsledek převodu je nejednoznačný. |
Nečlenové
Function | Popis |
---|---|
operator<< |
local_info Výstup streamu |
result
Výsledek převodu na local_time
.sys_time
int result;
Vrácená hodnota
Výsledkem může být jedna z následujících hodnot:
unique
: Úspěšnělocal_time
byla převedena na .sys_time
nonexistent
: Není k dispozici mapování z objektulocal_time
sys_time
.ambiguous
: Zemělocal_time
během přechodu mezi letním časem a standardním časem, takže lze převést na dvěsys_time
hodnoty.
Poznámky
Informace o tom, jak first
a jsou nastaveny na result
základě , naleznete v následující části ofirst
, second
.second
first
, second
Poskytuje výsledek převodu na local_time
.sys_time
sys_seconds begin;
sys_seconds end;
Vrácená hodnota
first
a second
jsou nastaveny takto result
:
result |
first |
second |
---|---|---|
unique |
Obsahuje hodnotu local_time převedenou na sys_time |
inicializováno nulou |
nonexistent |
Konec sys_info těsně před local_time |
Asys_info , který začíná hned po .local_time |
ambiguous |
Konec sys_info těsně po local_time |
Asys_info , která začíná těsně před .local_time |
ambiguous
kód výsledku
Během přechodu z letního času na standardní čas na podzim hodiny v podstatě získávají další hodinu. To může být matoucí, protože přechod na standardní čas neznamená ztrátu hodiny? Když se vrátíte za hodinu, hodina před přechodem se bude opakovat po nastavení hodin pro standardní čas. Vezměte v úvahu změnu standardního času v New Yorku, která probíhá v první neděli v listopadu v 2:00. První, 1:00 jde. V 2:00 se hodiny přejdou na standardní čas, takže teď je to znovu 1:00. To znamená, že doba mezi 1:00 a 2:00 se bude opakovat, což efektivně přidává hodinu. Podívejte se ambiguous_local_time
na příklad.
local_time
Pokud určuje čas během této "extra" hodiny, není jasné, jak ho převést. Má se převedený čas považovat za první, kdy se tato hodina stane, nebo jako druhá? Pokud není zadaný výčt choose
, který určuje, na který by měl být, očekává result
se, že bude nastaven na ambiguous
a first
second
bude odrážet dvě volby pro čas local_time
, na který by bylo možné převést.
nonexistent
kód výsledku
Během přechodu ze standardního času na letní čas na jaře hodiny v podstatě ztratí hodinu. To může být matoucí, protože přechod na letní čas neznamená přidání hodiny? Tím, že se "posune dopředu" hodina následující po přechodu, se efektivně odebere. Vezměte v úvahu změnu letního času v New Yorku, která se děje v druhé neděli v březnu v 2:00. V 2:00 se hodiny přecházejí na letní čas a nyní čte 3:00. local_time
Pokud je převod 2:30,00, například tento čas je v období, které bylo odebráno, a proto můžete očekávatresult
, že bude nonexistent
mít kód. Podívejte se nonexistent_local_time
na příklad.
Příklad: získání 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)
Požadavky
Záhlaví: <chrono>
Obor názvů: std::chrono
Možnost kompilátoru: /std:c++latest
<chrono>
ambiguous_local_time
výjimka
choose
výčet
Třída file_clock
high_resolution_clock
local_t
Struct
non_existent
výjimka
system_clock
Struct
Třída tai_clock
Třída utc_clock
Referenční informace k souborům hlaviček