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,   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)

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>

home | help