Namespaces
Variants

std::chrono::time_zone:: to_sys

From cppreference.net
template < class Duration >

auto to_sys ( const std:: chrono :: local_time < Duration > & tp ) const

- > std:: chrono :: sys_time < std:: common_type_t < Duration, std:: chrono :: seconds >> ;
(1) (начиная с C++20)
template < class Duration >

auto to_sys ( const std:: chrono :: local_time < Duration > & tp, std:: chrono :: choose z ) const

- > std:: chrono :: sys_time < std:: common_type_t < Duration, std:: chrono :: seconds >> ;
(2) (начиная с C++20)

Преобразует local_time tp в этом часовом поясе в соответствующий sys_time .

1) Выбрасывает исключение, если преобразование неоднозначно или если tp представляет несуществующее время.
2) Разрешает неоднозначность в соответствии со значением z :
  • Если z == std :: chrono :: choose :: earliest , возвращает более ранний sys_time .
  • Если z == std :: chrono :: choose :: latest , возвращает более поздний sys_time .
Если tp представляет несуществующее время между двумя UTC time_point , эти два time_point будут одинаковыми, и будет возвращён этот time_point .

Содержание

Возвращаемое значение

UTC-эквивалент tp в соответствии с правилами данного часового пояса.

Исключения

1) Выбрасывает:

Примечания

Точность результата составляет как минимум std::chrono::seconds и будет выше, если аргумент обладает более высокой точностью.

Неоднозначные и несуществующие локальные времена могут возникать в результате переходов между часовыми поясами (таких как переход на летнее время). Например, "2016-03-13 02:30:00" не существует в часовом поясе "America/New_York" , тогда как "2016-11-06 01:30:00" в этом часовом поясе может соответствовать двум точкам времени UTC: 2016 - 11 - 06 05 : 30 : 00 UTC и 2016 - 11 - 06 06 : 30 : 00 UTC .

Пример