std::chrono::system_clock

来自cppreference.com
< cpp‎ | chrono
 
 
工具库
通用工具
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中弃用)
整数比较函数
(C++20)(C++20)(C++20)
(C++20)
swap 与类型运算
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
常用词汇类型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
初等字符串转换
(C++17)
(C++17)
 
日期和时间工具
时间点
(C++11)
(C++20)
时长
(C++11)
时钟
system_clock
(C++11)
(C++11)      
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
当天时刻
(C++20)(C++20)
(C++20)(C++20)
(C++20)

日历
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)(C++20)
时区
(C++20)
(C++20)
(C++20)
chrono I/O
(C++20)
C 风格日期和时间
 
 
在标头 <chrono> 定义
class system_clock;
(C++11 起)

std::chrono::system_clock 表示系统范围的实时壁钟。

它可以不单调:大多数系统上,系统时间可以在任何时候被调节。它是唯一有能力映射其时间点到 C 风格时间的 C++ 时钟。

std::chrono::system_clock 满足平凡时钟 (TrivialClock) 的要求。

不指定 system_clock 的纪元,但多数实现使用 Unix 时间(即从协调世界时 (UTC) 1970 年 1 月 1 日星期四 00:00:00 开始的时间,不计闰秒)。

(C++20 前)

system_clock 度量 Unix 时间(即从协调世界时 (UTC) 1970 年 1 月 1 日星期四 00:00:00 开始的时间,不计闰秒)。

(C++20 起)

时间点族

定义于命名空间 std::chrono
template<class Duration>
using sys_time = std::chrono::time_point<std::chrono::system_clock, Duration>;
(C++20 起)
using sys_seconds = sys_time<std::chrono::seconds>;
(C++20 起)
using sys_days = sys_time<std::chrono::days>;
(C++20 起)
进行 sys_time 上的流输出
(函数模板)
按照给定的格式从流分析 sys_time
(函数模板)
std::formatter 的特化,按照提供的格式格式化 sys_time
(类模板特化)

成员类型

成员类型 定义
rep 表示时钟时长中计次数的有符号算术类型
period 表示时钟计次周期的 std::ratio 类型,单位为秒
duration std::chrono::duration<rep, period> ,足以表示负时长
time_point std::chrono::time_point<std::chrono::system_clock>

成员常量

constexpr bool is_steady
[静态]
若时间间隔计次始终为常数,即纵使在调整了外部时钟的情况下,调用 now() 的返回值亦单调递增,则为 true ;否则为 false
(公开静态成员常量)

成员函数

[静态]
返回表示时间中当前点的 std::chrono::time_point
(公开静态成员函数)
[静态]
转换系统时钟时间点为 std::time_t
(公开静态成员函数)
[静态]
转换 std::time_t 到系统时钟时间点
(公开静态成员函数)

注解

system_clock 的时间值能由操作系统在内部调整到任何时间,例如由于 NTP 同步或用户更改系统的时钟。然而夏令时和时区更改不影响它,因为它基于 UTC 时区。

参阅

决不会调整的单调时钟
(类)
拥有可用的最短嘀嗒周期的时钟
(类)