Spec-Zone.ru › C++

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.

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::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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API