std::chrono::zoned_time<Duration,TimeZonePtr>:: zoned_time
| 
           
            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, TimeZonePtr > & other ) ; | (4) | (since C++20) | 
| 
           
            
             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
            
             >
            
            
             &
            
            st
            
             )
            
            
             ;
            
           
           | (7) | (since C++20) | 
| 
           
            zoned_time
            
             (
            
            
             
              std::
              
               string_view
              
             
            
            name,
            
             const
            
            
             
              std::
              
               chrono
              
              
               ::
              
              
               sys_time
              
             
            
            
             <
            
            Duration
            
             >
            
            
             &
            
            st
            
             )
            
            
             ;
            
           
           | (8) | (since C++20) | 
| 
           
            zoned_time
            
             (
            
            TimeZonePtr z,
            
             const
            
            
             
              std::
              
               chrono
              
              
               ::
              
              
               local_time
              
             
            
            
             <
            
            Duration
            
             >
            
            
             &
            
            tp
            
             )
            
            
             ;
            
           
           | (9) | (since C++20) | 
| 
           
            zoned_time
            
             (
            
            
             
              std::
              
               string_view
              
             
            
            name,
            
             const
            
            
             
              std::
              
               chrono
              
              
               ::
              
              
               local_time
              
             
            
            
             <
            
            Duration
            
             >
            
            
             &
            
            tp
            
             )
            
            
             ;
            
           
           | (10) | (since C++20) | 
| 
           
            zoned_time
            
             (
            
            TimeZonePtr z,
            
             const
            
            
             
              std::
              
               chrono
              
              
               ::
              
              
               local_time
              
             
            
            
             <
            
            Duration
            
             >
            
            
             &
            
            tp,
             std:: chrono :: choose c ) ; | (11) | (since C++20) | 
| 
           
            zoned_time
            
             (
            
            
             
              std::
              
               string_view
              
             
            
            name,
             const std:: chrono :: local_time < Duration > & tp, std:: chrono :: choose c ) ; | (12) | (since C++20) | 
| 
           
            
             template
            
            
             <
            
            
             class
            
            Duration2,
            
             class
            
            TimeZonePtr2
            
             >
            
             
             zoned_time
             
              (
             
             TimeZonePtr z,
              | (13) | (since C++20) | 
| 
           
            
             template
            
            
             <
            
            
             class
            
            Duration2,
            
             class
            
            TimeZonePtr2
            
             >
            
             
             zoned_time
             
              (
             
             TimeZonePtr z,
              | (14) | (since C++20) | 
| 
           
            
             template
            
            
             <
            
            
             class
            
            Duration2,
            
             class
            
            TimeZonePtr2
            
             >
            
             
             zoned_time
             
              (
             
             
              
               std::
               
                string_view
               
              
             
             name,
              | (15) | (since C++20) | 
| 
           
            
             template
            
            
             <
            
            
             class
            
            Duration2,
            
             class
            
            TimeZonePtr2
            
             >
            
             
             zoned_time
             
              (
             
             
              
               std::
               
                string_view
               
              
             
             name,
              | (16) | (since C++20) | 
       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 
          zone
         ) | Time point (a std:: chrono :: sys_time < duration > ) | Notes | 
|---|---|---|---|
| (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) | 
        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
       
       .
      
        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
#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} << " : " << location1 << '\n'; const std::chrono::time_zone* timeZonePtr = std::chrono::locate_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::local_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::system_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