Namespaces
Variants
Views
Actions

std::chrono::time_zone::to_sys

From cppreference.com
< cpp‎ | chrono‎ | time zone
 
 
Utilities library
General utilities
Date and time
Function objects
Formatting library (C++20)
(C++11)
Relational operators (deprecated in C++20)
Integer comparison functions
(C++20)(C++20)(C++20)   
(C++20)
Swap and type operations
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Common vocabulary types
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Elementary string conversions
(C++17)
(C++17)
 
 
 
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)

Converts the local_time tp in this time zone to the corresponding sys_time.

1) Throws an exception if the conversion is ambiguous or if tp represents a nonexistent time.
2) Resolves ambiguity according to the value of z:
  • If z == std::chrono::choose::earliest, returns the earlier sys_time.
  • If z == std::chrono::choose::latest, returns the later sys_time
If tp represents a nonexistent time between two UTC time_points, those two time_points will be the same, and that time_point will be returned.

[edit] Return value

The UTC equivalent of tp according to the rules of this time zone.

[edit] Exceptions

1) Throws a std::chrono::ambiguous_local_time if the conversion is ambiguous. Throws a std::chrono::nonexistent_local_time if tp represents a nonexistent time.

[edit] Notes

The precision of the result is at least std::chrono::seconds, and will be finer if the argument has finer precision.

Ambiguous and nonexistent local times can occur as a result of time zone transitions (such as daylight saving time). For example, "2016-03-13 02:30:00" does not exist in the "America/New_York" time zone, while "2016-11-06 01:30:00" in that time zone can correspond to two UTC time points: 2016-11-06 05:30:00 UTC and 2016-11-06 06:30:00 UTC.