Структура local_info
Предоставляет низкоуровневый интерфейс для сведений часового пояса о результате преобразования в local_time
объект sys_time
.
Синтаксис
struct local_info;
Участники
Function | Description |
---|---|
result |
Код, описывающий результат преобразования. |
first , second |
Результат преобразования. |
Константы элементов
Имя. | Стоимость | Описание |
---|---|---|
unique |
0 | Результат преобразования является уникальным. |
nonexistent |
1 | Для преобразования в нее sys_time нет соответствующего local_time значения. |
ambiguous |
2 | Результат преобразования является неоднозначным. |
Не являющиеся членами
Function | Description |
---|---|
operator<< |
Выводится local_info в поток. |
result
Результат преобразования объекта local_time
sys_time
в .
int result;
Возвращаемое значение
Результат может быть одним из следующих значений:
unique
: успешноlocal_time
преобразован в объектsys_time
.nonexistent
: не существует сопоставления отlocal_time
10.00sys_time
.ambiguous
local_time
: земли во время перехода между временем летнего и стандартного времени и таким образом могут быть преобразованы в дваsys_time
значения.
Замечания
Сведения о настройке first
и second
настройке на основе result
см. в следующем разделе.first
second
first
, second
Предоставляет результат преобразования объекта local_time
в объект sys_time
.
sys_seconds begin;
sys_seconds end;
Возвращаемое значение
first
и second
задаются следующим result
образом:
result |
first |
second |
---|---|---|
unique |
Содержит значение преобразованного local_time в sys_time |
нулевые инициализированные |
nonexistent |
A sys_info , который заканчивается непосредственно перед local_time |
Это sys_info начинается сразу после local_time . |
ambiguous |
Это sys_info заканчивается сразу после local_time |
Это sys_info начинается непосредственно перед local_time . |
ambiguous
код результата
Во время перехода с летнего времени на стандартное время осенью часы по сути получают дополнительный час. Это может быть запутано, потому что не переход на стандартное время означает потерю часа? Попадая обратно в час, час до перехода будет повторяться после того, как часы корректируются на стандартное время. Рассмотрим изменение стандартного времени в Нью-йорке, которое происходит в первое воскресенье в ноябре в 2:00 утра. Во-первых, 1:00 утра идет. В 2 утра часы переходит в стандартное время, поэтому теперь это 1:00 утра снова. Это означает, что время между 1 утра и 2 утра будет "повторяться", эффективно добавляя час. Пример см. в разделе ambiguous_local_time
.
Если значение local_time
указывает время в течение этого дополнительного часа, это не ясно, как преобразовать его. Следует ли рассматривать преобразованное время как "первое" время, которое происходит час, или "второй"? Если перечисление choose
не указано, чтобы указать, в каком случае оно должно быть second
ambiguous
first
задано, и result
будет отражать два варианта времени, в которое local_time
может быть преобразовано значение.
nonexistent
код результата
Во время перехода с стандартного времени на летнее время весной часы по сути теряют час. Это может быть запутано, потому что не переход на летнее время означает добавление часа? По "спринг вперед" час после перехода фактически удаляется. Рассмотрим изменение летнего времени в Нью-йорке, которое происходит во второй воскресенье в марте в 2 утра. В 2 утра часы переходит на летнее время и теперь считывает 3:00 утра. local_time
Если преобразуемое значение равно 2:30 утра, то время за период, который был удален, и поэтому можно ожидатьresult
, что код будет выполненnonexistent
. Пример см. в разделе nonexistent_local_time
.
Пример: получение 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)
Требования
Заголовок: <chrono>
Пространство имен: std::chrono
Параметр компилятора: /std:c++latest
<chrono>
ambiguous_local_time
исключение
choose
enum
Класс file_clock
high_resolution_clock
Структура local_t
non_existent
исключение
Структура system_clock
Класс tai_clock
Класс utc_clock
Справочник по файлам заголовков