std::chrono::time_zone::to_sys
Материал из cppreference.com
<tbody>
</tbody>
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>>; |
(начиная с 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>>; |
(начиная с 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 будет возвращено.Возвращаемое значение
Эквивалент tp в формате UTC в соответствии с правилами этого часового пояса.
Исключения
1) Генерирует:
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.