FreeBSD Manual Pages
std::chrono...::zoned_time(3) C++ Standard Libarystd::chrono...::zoned_time(3) NAME std::chrono::zoned_time::zoned_time - std::chrono::zoned_time::zoned_time Synopsis zoned_time(); (1) (since C++20) zoned_time( const std::chrono::sys_time<Duration>& st ); (2) (since C++20) zoned_time( const zoned_time& other) = default; (3) (since C++20) template< class Duration2 > zoned_time( const std::chrono::zoned_time<Duration2, (4) (since C++20) TimeZonePtr>& other ); explicit zoned_time( TimeZonePtr z ); (5) (since C++20) explicit zoned_time( std::string_view name ); (6) (since C++20) zoned_time( TimeZonePtr z, const std::chrono::sys_time<Duration>& (7) (since C++20) st ); zoned_time( std::string_view name, const (8) (since C++20) std::chrono::sys_time<Duration>& st ); zoned_time( TimeZonePtr z, const (9) (since C++20) std::chrono::local_time<Duration>& tp ); zoned_time( std::string_view name, const (10) (since C++20) std::chrono::local_time<Duration>& tp ); zoned_time( TimeZonePtr z, const std::chrono::local_time<Duration>& tp, (11) (since C++20) std::chrono::choose c ); zoned_time( std::string_view name, const std::chrono::local_time<Duration>& tp, std::chrono::choose (12) (since C++20) c ); template< class Duration2, class TimeZonePtr2 > zoned_time( TimeZonePtr z, (13) (since C++20) const std::chrono::zoned_time<Duration2, TimeZonePtr2>& zt ); template< class Duration2, class TimeZonePtr2 > zoned_time( TimeZonePtr z, (14) (since C++20) const std::chrono::zoned_time<Duration2, TimeZonePtr2>& zt, std::chrono::choose ); template< class Duration2, class TimeZonePtr2 > zoned_time( std::string_view name, (15) (since C++20) const std::chrono::zoned_time<Duration2, TimeZonePtr2>& zt ); template< class Duration2, class TimeZonePtr2 > zoned_time( std::string_view name, (16) (since C++20) const std::chrono::zoned_time<Duration2, TimeZonePtr2>& zt, std::chrono::choose ); Constructs a zoned_time object, initializing the stored time zone pointer and time point according to the following table, where traits is std::chrono::zoned_traits<TimeZonePtr>: Overload Time zone pointer (denoted Time point (a Notes zone) std::chrono::sys_time<dura- tion>) (1) traits::default_zone() default constructed (a) (2) st (3) other.get_time_zone() other.get_sys_time() (b) (4) other.get_time_zone() other.get_sys_time() (e) (5) std::move(z) default constructed (6) traits::locate_zone(name) (c) (7) std::move(z) st (8) traits::locate_zone(name) (c) (9) std::move(z) zone->to_sys(tp) (d) (10) traits::locate_zone(name) (c,d) (11) std::move(z) zone->to_sys(tp, c) (d) (12) traits::locate_zone(name) (c,d) (13-14) std::move(z) zt.get_sys_time() (e) (15-16) traits::locate_zone(name) (c,e) a) Constructors specified to call traits::default_zone() (1-2) do not participate in overload resolution if that expression is not well-formed. b) The defaulted copy constructor (3) is defined as deleted if std::is_copy_constructible_v<TimeZonePtr> is false. c) Constructors with a std::string_view parameter name (6,8,10,12,15-16) do not participate in overload resolution if traits::locate_zone(name) is not well-formed or if that expression is not convertible to TimeZonePtr. d) Constructors specified to call zone->to_sys (9-12) do not partic- ipate in overload resolution if that call expression is not well-formed or if the re- sult is not convertible to std::chrono::sys_time<duration>. e) Constructors with a template parameter Duration2 (4,13-16) do not participate in overload resolution if Duration2 is not convertible to Duration. The behavior is undefined if the time zone pointer (initialized as described above) does not refer to a time zone. Notes zoned_time does not have a move constructor and attempting to move one will perform a copy instead using the defaulted copy constructor (3). Thus, when TimeZonePtr is a move-only type, zoned_time is immovable: it can be neither moved nor copied. The constructors (14,16) accept a std::chrono::choose parameter, but that parameter has no effect. Example // Run this code #include <chrono> #include <iostream> #include <string_view> int main() { using std::chrono_literals::operator""y; using std::operator""sv; const auto now = std::chrono::floor<std::chrono::min- utes>(std::chrono::system_clock::now()); { std::cout << std::chrono::zoned_time{} << " : default\n"; } { constexpr std::string_view location {"America/Phoenix"sv}; std::cout << std::chrono::zoned_time{ location } << " : " << location << '\n'; } { const std::chrono::time_zone* TimeZonePtr = std::chrono::lo- cate_zone("UTC"); std::cout << std::chrono::zoned_time{ TimeZonePtr } << " : UTC time zone\n"; } { constexpr auto location{"Europe/Rome"sv}; std::cout << std::chrono::zoned_time{ location, std::chrono::local_days{2021y/12/31} } << " : " << location << '\n'; } { constexpr auto location {"Europe/Rome"sv}; constexpr auto some_date = std::chrono::sys_time<std::chrono::days>{2021y/12/31}; std::cout << std::chrono::zoned_time{ location, some_date } << " : " << location << '\n'; } { constexpr auto location {"Europe/Rome"sv}; std::cout << std::chrono::zoned_time{ location, now } << " : " << location << '\n'; } { constexpr auto NewYork {"America/New_York"sv}; constexpr auto Tokyo {"Asia/Tokyo"sv}; const std::chrono::zoned_time tz_Tokyo {Tokyo, now}; const std::chrono::zoned_time tz_NewYork {NewYork, now}; std::cout << std::chrono::zoned_time{ Tokyo, tz_NewYork } << " : " << Tokyo << '\n'; std::cout << std::chrono::zoned_time{ NewYork, tz_Tokyo } << " : " << NewYork << '\n'; } } Possible output: 1970-01-01 00:00:00 UTC : default 1969-12-31 17:00:00 MST : America/Phoenix 1970-01-01 00:00:00 UTC : UTC time zone 2021-12-31 00:00:00 CET : Europe/Rome 2021-12-31 01:00:00 CET : Europe/Rome 2021-09-20 23:04:00 CEST : Europe/Rome 2021-09-21 06:04:00 JST : Asia/Tokyo 2021-09-20 17:04:00 EDT : America/New_York http://cppreference.com 2022.07.31 std::chrono...::zoned_time(3)
NAME | Synopsis | Notes | Example | Possible output:
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::chrono::zoned_time::zoned_time&sektion=3&manpath=FreeBSD+Ports+15.0>
