local_info
Struct
Udostępnia interfejs niskiego poziomu do informacji o strefie czasowej o wyniku konwersji obiektu local_time
na sys_time
.
Składnia
struct local_info;
Elementy członkowskie
Function | opis |
---|---|
result |
Kod opisujący wynik konwersji. |
first , second |
Wynik konwersji. |
Stałe składowe
Nazwa/nazwisko | Wartość | Opis |
---|---|---|
unique |
0 | Wynik konwersji jest unikatowy. |
nonexistent |
1 | Nie ma odpowiedniego sys_time elementu, aby przekonwertować element na local_time . |
ambiguous |
2 | Wynik konwersji jest niejednoznaczny. |
Inne niż elementy członkowskie
Function | opis |
---|---|
operator<< |
local_info Wyprowadzanie elementu do strumienia. |
result
Wynik konwersji obiektu local_time
na .sys_time
int result;
Wartość zwracana
Wynik może być jedną z następujących wartości:
unique
: Elementlocal_time
został pomyślnie przekonwertowany na .sys_time
nonexistent
: nie ma mapowania z elementulocal_time
sys_time
na .ambiguous
: Lądujelocal_time
podczas przejścia między czasem letnim a czasem standardowym i tak można przekonwertować na dwiesys_time
wartości.
Uwagi
Aby uzyskać informacje na temat sposobu ustawiania i second
ustawiania na result
podstawie elementu , zobacz następującą sekcję ofirst
systemie . second
first
first
, second
Zapewnia wynik konwersji obiektu local_time
na .sys_time
sys_seconds begin;
sys_seconds end;
Wartość zwracana
first
i second
są ustawione w następujący result
sposób:
result |
first |
second |
---|---|---|
unique |
Zawiera wartość local_time przekonwertowaną na sys_time |
zainicjowane zero |
nonexistent |
Element sys_info , który kończy się tuż przed local_time |
Element sys_info rozpoczynający się tuż po .local_time |
ambiguous |
Element sys_info , który kończy się tuż po local_time |
Element sys_info rozpoczynający się tuż przed elementem local_time . |
ambiguous
kod wyniku
Podczas przejścia od czasu letniego do czasu standardowego jesienią zegary zasadniczo zyskują dodatkową godzinę. Może to być mylące, ponieważ nie przejście do czasu standardowego oznacza utratę godziny? Spadając co godzinę, godzina przed przejściem będzie powtarzana po zegarze dostosowuje się do standardowego czasu. Rozważ zmianę czasu standardowego w Nowym Jorku, która ma miejsce w pierwszą niedzielę w listopadzie o godzinie 2:00. Po pierwsze, 1:00 idzie dalej. O 2 rano zegar przechodzi do czasu standardowego, więc teraz znowu jest 1:00. Oznacza to, że czas między 1 rano a 2 rano będzie "powtarzany", skutecznie dodając godzinę. Zobacz ambiguous_local_time
przykład.
Jeśli parametr local_time
określa czas w tej "dodatkowej" godzinie, nie jest jasne, jak go przekonwertować. Czy przekonwertowany czas powinien być traktowany jako "pierwszy" czas, który się dzieje, czy "drugi"? Jeśli wyliczenie choose
nie zostanie określone, aby wskazać, które powinno być, należy result
je ustawić ambiguous
na , i first
second
będzie odzwierciedlać dwie opcje dotyczące czasu local_time
, na który można przekonwertować.
nonexistent
kod wyniku
W okresie przejściowym od czasu standardowego do czasu letniego wiosną zegary zasadniczo tracą godzinę. Może to być mylące, ponieważ nie przejście do czasu letniego oznacza dodanie godziny? Przez "wiosnę do przodu" godzinę, godzina po przejściu zostanie skutecznie usunięta. Rozważ zmianę czasu letniego w Nowym Jorku, która ma miejsce w drugą niedzielę w marcu o 2 rano. O godzinie 2:00 zegar przechodzi do czasu letniego, a teraz odczytuje 3:00. local_time
Jeśli przekonwertowana wartość to 2:30, na przykład czas ten przypada w okresie "usuniętym", więc można oczekiwaćresult
, że nonexistent
kod zostanie wyświetlony. Zobacz nonexistent_local_time
przykład.
Przykład: uzyskiwanie 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)
Wymagania
Nagłówek: <chrono>
Przestrzeń nazw: std::chrono
Opcja kompilatora: /std:c++latest
<chrono>
ambiguous_local_time
wyjątek
choose
wyliczenie
Klasa file_clock
high_resolution_clock
local_t
Struct
non_existent
wyjątek
system_clock
Struct
Klasa tai_clock
Klasa utc_clock
Odwołanie do plików nagłówka