std::chrono::time_zone::to_sys
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.
tp представляет несуществующее время.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::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.
Пример
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/chrono/time_zone/to_sys