std::chrono::zoned_time<Duration,TimeZonePtr>::zoned_time
| 时间点 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 时长 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 时钟 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 当天时刻 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 日历 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 时区 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
chrono
I/O
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
(C++20)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| C 风格日期和时间 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 成员函数 | ||||
|
zoned_time::zoned_time
|
||||
| 非成员函数 | ||||
| 辅助类 | ||||
|
(C++26)
|
||||
| 推导指引 |
|
zoned_time();
|
(1) | (C++20 起) |
|
zoned_time(const
std::chrono::sys_time<Duration>&
st);
|
(2) | (C++20 起) |
|
zoned_time(const
zoned_time&
other)
= default;
|
(3) | (C++20 起) |
|
template<
class
Duration2 >
zoned_time(const std::chrono::zoned_time<Duration2, TimeZonePtr>& other); |
(4) | (C++20 起) |
|
explicit
zoned_time(TimeZonePtr
z);
|
(5) | (C++20 起) |
|
explicit
zoned_time(std::string_view
name);
|
(6) | (C++20 起) |
|
zoned_time(TimeZonePtr
z, const
std::chrono::sys_time<Duration>&
st);
|
(7) | (C++20 起) |
|
zoned_time(std::string_view
name, const
std::chrono::sys_time<Duration>&
st);
|
(8) | (C++20 起) |
|
zoned_time(TimeZonePtr
z, const
std::chrono::local_time<Duration>&
tp);
|
(9) | (C++20 起) |
|
zoned_time(std::string_view
name, const
std::chrono::local_time<Duration>&
tp);
|
(10) | (C++20 起) |
|
zoned_time(TimeZonePtr
z, const
std::chrono::local_time<Duration>&
tp,
std::chrono::choose c); |
(11) | (C++20 起) |
|
zoned_time(std::string_view
name,
const std::chrono::local_time<Duration>& tp, std::chrono::choose c); |
(12) | (C++20 起) |
|
template<
class
Duration2, class
TimeZonePtr2 >
zoned_time(TimeZonePtr
z, |
(13) | (C++20 起) |
|
template<
class
Duration2, class
TimeZonePtr2 >
zoned_time(TimeZonePtr
z, |
(14) | (C++20 起) |
|
template<
class
Duration2, class
TimeZonePtr2 >
zoned_time(std::string_view
name, |
(15) | (C++20 起) |
|
template<
class
Duration2, class
TimeZonePtr2 >
zoned_time(std::string_view
name, |
(16) | (C++20 起) |
构造 zoned_time 对象,按照下表初始化存储的时区指针和时间点,其中 traits 为
std::chrono::zoned_traits<TimeZonePtr> :
| 重载 | 时区指针(记为 zone )
|
时间点( std::chrono::sys_time<duration> ) | 注意 |
|---|---|---|---|
| (1) | traits::default_zone() | 默认构造 | (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) | 默认构造 | |
| (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) |
TimeZonePtr ,则带 std::string_view
参数 name 的构造函数 (6,8,10,12,15-16)
不参与重载决议。Duration2 不可转换成
Duration ,则带模板形参 Duration2 的构造函数 (4,13-16) 不参与重载决议。若(按上述方式初始化的)时区指针不指代合法时区,则行为未定义。
注解
zoned_time 无移动构造函数,而移动它的尝试将替而用默认化的复制构造函数 (3) 进行复制。从而当 TimeZonePtr
是仅移动的类型时, zoned_time 不可移动:既不能复制亦不能移动它。
构造函数 (14,16) 接受 std::chrono::choose 参数,但该参数无效果。