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>>;
| (since 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>>;
| (since 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/w/cpp/chrono/time_zone/to_sys