Namensräume
Varianten
Aktionen

std::chrono::time_zone::to_sys

Von cppreference.com
< cpp‎ | chrono‎ | time zone
 
 
 
 
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) (seit 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) (seit C++20)

Konvertiert die local_time tp in dieser Zeitzone in die entsprechende sys_time.

1) Wirft eine Ausnahme, wenn die Konvertierung mehrdeutig ist oder wenn tp eine nicht existierende Zeit darstellt.
2) Löst Mehrdeutigkeiten gemäß dem Wert von z auf.
  • Wenn z == std::chrono::choose::earliest, wird die frühere sys_time zurückgegeben.
  • Wenn z == std::chrono::choose::latest, wird die spätere sys_time zurückgegeben.
Wenn tp eine nicht existierende Zeit zwischen zwei UTC time_points darstellt, sind diese beiden time_points gleich und dieser time_point wird zurückgegeben.

Inhalt

[bearbeiten] Rückgabewert

Das UTC-Äquivalent von tp gemäß den Regeln dieser Zeitzone.

[bearbeiten] Ausnahmen

1) Wirft

[bearbeiten] Hinweise

Die Präzision des Ergebnisses beträgt mindestens std::chrono::seconds und ist feiner, wenn das Argument eine feinere Präzision aufweist.

Mehrdeutige und nicht existierende lokale Zeiten können als Ergebnis von Zeitzonenübergängen (wie z. B. Sommerzeit) auftreten. Zum Beispiel existiert "2016-03-13 02:30:00" in der Zeitzone "America/New_York" nicht, während "2016-11-06 01:30:00" in dieser Zeitzone zwei UTC-Zeitpunkte entsprechen kann: 2016-11-06 05:30:00 UTC und 2016-11-06 06:30:00 UTC.

[bearbeiten] Beispiel