std::chrono::time_zone::to_sys
De 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>>; |
(desde 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>>; |
(desde C++20) | |
Convierte el local_time tp en esta zona horaria al sys_time correspondiente.
1) Lanza una excepción si la conversión es ambigua o si
tp representa una hora inexistente.2) Resuelve la ambigüedad según el valor de
z:
- Si
z == std::chrono::choose::earliest, devuelve elsys_timeanterior. - Si
z == std::chrono::choose::latest, devuelve el últimosys_time.
Si
tp representa una hora inexistente entre dos time_point UTC, esos dos time_point serán iguales, y ese time_point será devuelto.Valor de retorno
El equivalente UTC de tp según las reglas de esta zona horaria.
Excepciones
1) Lanza std::chrono::ambiguous_local_time si la conversión es ambigua. Lanza std::chrono::nonexistent_local_time si
tp representa una hora inexistente.Notas
La precisión del resultado es al menos std::chrono::seconds, y será más fina si el argumento tiene una precisión más fina.
Pueden producirse horas locales ambiguas e inexistentes como resultado de las transiciones de zona horaria (como el horario de verano). Por ejemplo, "2016-03-13 02:30:00" no existe en la zona horaria "America/New_York", mientras que "2016-11-06 01:30:00" en esa zona horaria puede corresponder a dos puntos de tiempo UTC: 2016-11-06 05:30:00 UTC y 2016-11-06 06:30:00 UTC.