Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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_timezostał pomyślnie przekonwertowany na .sys_timenonexistent: nie ma mapowania z elementulocal_timesys_timena .ambiguous: Lądujelocal_timepodczas przejścia między czasem letnim a czasem standardowym i tak można przekonwertować na dwiesys_timewartości.
Uwagi
Aby uzyskać informacje na temat sposobu ustawiania i second ustawiania na resultpodstawie elementu , zobacz następującą sekcję ofirst systemie . secondfirst
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ć ambiguousna , 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