Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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,
       (12) (since C++20)
	  std::chrono::choose 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,
		      const		    std::chrono::zoned_time<Duration2,
       (14) (since C++20)
	  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,
		      const		    std::chrono::zoned_time<Duration2,
       (16) (since C++20)
	  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;

	    std::cout << std::chrono::zoned_time{} << "	: default\n";

	    constexpr std::string_view location1{"America/Phoenix"sv};
	    std::cout  << std::chrono::zoned_time{location1} <<	" : " << loca-
       tion1 <<	'\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 location2{"Europe/Rome"sv};
	    std::cout <<  std::chrono::zoned_time{location2,  std::chrono::lo-
       cal_days{2021y/12/31}}
		      << " : " << location2 << '\n';

	    constexpr auto location3{"Europe/Rome"sv};
	    constexpr		    auto	      some_date		     =
       std::chrono::sys_time<std::chrono::days>{2021y/12/31};
	    std::cout << std::chrono::zoned_time{location3, some_date}
		      << " : " << location3 << '\n';

	    const auto now =
		std::chrono::floor<std::chrono::minutes>(std::chrono::sys-
       tem_clock::now());
	    constexpr auto location4{"Europe/Rome"sv};
	    std::cout << std::chrono::zoned_time{location4, now} << " :	 "  <<
       location4 << '\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		  2024.06.10	 std::chrono...::zoned_time(3)

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.1.quarterly>

home | help