Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::chrono::zoned_time<Duration,TimeZonePtr>::zoned_time

      From cppreference.com
      <cpp‎ |chrono‎ |zoned time
       
       
      Date and time library
       
       
      zoned_time();
      (1)(since C++20)
      zoned_time(conststd::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(conststd::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,conststd::chrono::sys_time<Duration>& st);
      (7)(since C++20)
      zoned_time(std::string_view name,conststd::chrono::sys_time<Duration>& st);
      (8)(since C++20)
      zoned_time( TimeZonePtr z,conststd::chrono::local_time<Duration>& tp);
      (9)(since C++20)
      zoned_time(std::string_view name,conststd::chrono::local_time<Duration>& tp);
      (10)(since C++20)
      zoned_time( TimeZonePtr z,conststd::chrono::local_time<Duration>& tp,
                 std::chrono::choose c);
      (11)(since C++20)
      zoned_time(std::string_view name,
                 conststd::chrono::local_time<Duration>& tp,std::chrono::choose c);
      (12)(since C++20)
      template<class Duration2,class TimeZonePtr2>

      zoned_time( TimeZonePtr z,

                 conststd::chrono::zoned_time<Duration2, TimeZonePtr2>& zt);
      (13)(since C++20)
      template<class Duration2,class TimeZonePtr2>

      zoned_time( TimeZonePtr z,
                 conststd::chrono::zoned_time<Duration2, TimeZonePtr2>& zt,

                 std::chrono::choose);
      (14)(since C++20)
      template<class Duration2,class TimeZonePtr2>

      zoned_time(std::string_view name,

                 conststd::chrono::zoned_time<Duration2, TimeZonePtr2>& zt);
      (15)(since C++20)
      template<class Duration2,class TimeZonePtr2>

      zoned_time(std::string_view name,
                 conststd::chrono::zoned_time<Duration2, TimeZonePtr2>& zt,

                 std::chrono::choose);
      (16)(since C++20)

      Constructs azoned_time object, initializing the stored time zone pointer and time point according to the following table, wheretraits isstd::chrono::zoned_traits<TimeZonePtr>:

      OverloadTime zone pointer (denotedzone)Time point (astd::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)
      a) Constructors specified to calltraits::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 ifstd::is_copy_constructible_v<TimeZonePtr> is false.
      c) Constructors with astd::string_view parametername(6,8,10,12,15,16) do not participate in overload resolution iftraits::locate_zone(name) is not well-formed or if that expression is not convertible toTimeZonePtr.
      d) Constructors specified to callzone->to_sys(9-12) do not participate in overload resolution if that call expression is not well-formed or if the result is not convertible tostd::chrono::sys_time<duration>.
      e) Constructors with a template parameterDuration2(4,13-16) do not participate in overload resolution ifDuration2 is not convertible toDuration.

      The behavior is undefined if the time zone pointer (initialized as described above) does not refer to a time zone.

      [edit]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, whenTimeZonePtr is a move-only type,zoned_time is immovable: it can be neither moved nor copied.

      The constructors(14,16) accept astd::chrono::choose parameter, but that parameter has no effect.

      [edit]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"; constexprstd::string_view location1{"America/Phoenix"sv};std::cout<<std::chrono::zoned_time{location1}<<" : "<< location1<<'\n'; conststd::chrono::time_zone* timeZonePtr=std::chrono::locate_zone("UTC");std::cout<<std::chrono::zoned_time{timeZonePtr}<<" : UTC time zone\n"; constexprauto location2{"Europe/Rome"sv};std::cout<<std::chrono::zoned_time{location2,std::chrono::local_days{2021y/12/31}}<<" : "<< location2<<'\n'; constexprauto location3{"Europe/Rome"sv};constexprauto some_date=std::chrono::sys_time<std::chrono::days>{2021y/12/31};std::cout<<std::chrono::zoned_time{location3, some_date}<<" : "<< location3<<'\n'; constauto now=std::chrono::floor<std::chrono::minutes>(std::chrono::system_clock::now());constexprauto location4{"Europe/Rome"sv};std::cout<<std::chrono::zoned_time{location4, now}<<" : "<< location4<<'\n'; constexprauto NewYork{"America/New_York"sv};constexprauto Tokyo{"Asia/Tokyo"sv};conststd::chrono::zoned_time tz_Tokyo{Tokyo, now};conststd::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 : default1969-12-31 17:00:00 MST : America/Phoenix1970-01-01 00:00:00 UTC : UTC time zone2021-12-31 00:00:00 CET : Europe/Rome2021-12-31 01:00:00 CET : Europe/Rome2021-09-20 23:04:00 CEST : Europe/Rome2021-09-21 06:04:00 JST : Asia/Tokyo2021-09-20 17:04:00 EDT : America/New_York
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/chrono/zoned_time/zoned_time&oldid=161719"

      [8]ページ先頭

      ©2009-2026 Movatter.jp