std::chrono::time_zone::to_sys
template< class Duration > auto to_sys( const std::chrono::local_time<Duration>& tp ) const |
(начиная с C++20) | |
template< class Duration > auto to_sys( const std::chrono::local_time<Duration>& tp, std::chrono::choose z ) const |
(начиная с C++20) | |
Преобразует local_time tp
в этом часовом поясе в соответствующий sys_time.
- Если z == std::chrono::choose::earliest, возвращает более раннее значение
sys_time
. - Если z == std::chrono::choose::latest, возвращает более позднее
sys_time
time_point
, эти два time_point
будут одинаковыми, и time_point
будет возвращено.[править] Возвращаемое значение
Эквивалент tp в формате UTC в соответствии с правилами этого часового пояса.
[править] Исключения
- std::chrono::ambiguous_local_time, если преобразование неоднозначно,
- std::chrono::nonexistent_local_time, если tp представляет несуществующее время.
[править] Примечание
Точность результата не менее 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.