C++ 参考手册
- C++11
- C++14
- C++17
- C++20
- C++ 编译器支持情况表
- 独立与宿主实现
- C++ 语言
- C++ 关键词
- 预处理器
- C++ 标准库头文件
- 具名要求
- 功能特性测试 (C++20)
- 工具库
- 类型支持(基本类型、RTTI、类型特性)
- 概念库 (C++20)
- 错误处理
- 动态内存管理
- 日期和时间工具
- std::chrono::duration
- std::chrono::time_point
- std::chrono::round(std::chrono::time_point)
- std::chrono::time_point_cast
- std::chrono::floor(std::chrono::time_point)
- std::chrono::ceil(std::chrono::time_point)
- operator+, operator-(std::time_point)
- operator==,!=,<,<=,>,>=,<=>(std::chrono::time_point)
- std::common_type(std::chrono::time_point)
- std::chrono::clock_cast
- std::chrono::is_am, std::chrono::is_pm, std::chrono::make12, std::chrono::make24
- std::chrono::system_clock
- std::chrono::steady_clock
- std::chrono::high_resolution_clock
- std::chrono::clock_time_conversion
- C 日期和时间工具
- std::chrono::is_clock
- std::chrono::utc_clock
- std::chrono::tai_clock
- std::chrono::gps_clock
- std::chrono::file_clock
- std::chrono::local_t
- std::chrono::day
- std::chrono::month
- std::chrono::year
- std::chrono::weekday
- std::chrono::operator/ (日历)
- std::chrono::year_month_day
- std::chrono::year_month_day_last
- std::chrono::year_month_weekday
- std::chrono::year_month_weekday_last
- std::chrono::weekday_indexed
- std::chrono::weekday_last
- std::chrono::month_day
- std::chrono::month_day_last
- std::chrono::month_weekday
- std::chrono::month_weekday_last
- std::chrono::year_month
- std::chrono::tzdb
- std::chrono::tzdb_list
- std::chrono::get_tzdb_list, std::chrono::get_tzdb, std::chrono::remote_version, std::chrono::reload_tzdb
- std::chrono::time_zone
- std::chrono::locate_zone
- std::chrono::current_zone
- std::chrono::zoned_time
- std::chrono::time_zone_link
- std::chrono::leap_second
- std::chrono::time_of_day
- std::chrono::last_spec
- std::chrono::treat_as_floating_point
- std::literals::chrono_literals::operator""ns
- std::literals::chrono_literals::operator""y
- std::literals::chrono_literals::operator""d
- std::literals::chrono_literals::operator""s
- std::literals::chrono_literals::operator""ms
- std::literals::chrono_literals::operator""us
- std::literals::chrono_literals::operator""h
- std::literals::chrono_literals::operator""min
- std::chrono::duration_values
- std::chrono::nonexistent_local_time
- std::chrono::ambiguous_local_time
- 注释
- 字符串库
- 容器库
- 迭代器库
- 范围库 (C++20)
- 算法库
- 数值库
- 输入/输出库
- 文件系统库
- 本地化库
- 正则表达式库
- 原子操作库
- 线程支持库
- 实验性 C++ 特性
- 有用的资源
- 索引
- std 符号索引
- 协程支持 (C++20)
- C++ 关键词
std::chrono::time_point
定义于头文件 <chrono>
|
||
template< class Clock, |
(C++11 起) | |
类模板 std::chrono::time_point
表示时间中的一个点。它被实现成如同存储一个 Duration
类型的自 Clock
的纪元起始开始的时间间隔的值。
Clock
必须满足时钟 (Clock) 的要求或为 std::chrono::local_t (C++20 起)。
成员类型
成员类型 | 定义 |
clock
|
Clock ,此时间点在此时钟上计量
|
duration
|
Duration ,用于计量从纪元起时间的 std::chrono::duration 类型
|
rep
|
Rep ,表示时期的计次数的算术类型
|
period
|
Period ,表示时期周期的 std::ratio 类型
|
成员函数
构造新的 time_point (公开成员函数) | |
返回表示为从其时钟起点开始的时间点 (公开成员函数) | |
以给定的 duration 修改 time_point (公开成员函数) | |
自增或自减 duration (公开成员函数) | |
[静态] |
返回对应最小时长的时间点 (公开静态成员函数) |
[静态] |
返回对应最大时长的时间点 (公开静态成员函数) |
非成员函数
实施涉及时间点的加法和减法运算 (函数模板) | |
(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20) |
比较两个时间点 (函数模板) |
转换时间点为同一时钟上拥有不同时长的另一时间点 (函数模板) | |
转换 time_point 到另一个,向下取整 (函数模板) | |
转换 time_point 到另一个,向上取整 (函数模板) | |
转换 time_point 到另一个,就近取整,偶数优先 (函数模板) |
辅助类
特化 std::common_type 特征 (类模板特化) |
示例
运行此代码
#include <iostream> #include <iomanip> #include <ctime> #include <chrono> int main() { std::chrono::system_clock::time_point now = std::chrono::system_clock::now(); std::time_t now_c = std::chrono::system_clock::to_time_t(now - std::chrono::hours(24)); std::cout << "24 hours ago, the time was " << std::put_time(std::localtime(&now_c), "%F %T") << '\n'; std::chrono::steady_clock::time_point start = std::chrono::steady_clock::now(); std::cout << "Hello World\n"; std::chrono::steady_clock::time_point end = std::chrono::steady_clock::now(); std::cout << "Printing took " << std::chrono::duration_cast<std::chrono::microseconds>(end - start).count() << "us.\n"; }
可能的输出:
24 hours ago, the time was 2011-10-25 12:00:08 Hello World Printing took 84us.
参阅
(C++11) |
时间区间 (类模板) |