std:: timespec
From cppreference.net
C++
Date and time library
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
定义于头文件
<ctime>
|
||
|
struct
timespec
;
|
(C++17 起) | |
用于存储按秒和纳秒分解的时间间隔的结构体。
目录 |
数据成员
| 成员 | 描述 |
|
std::time_t
tv_sec
|
整秒数,其值 >=
0
(公开成员对象) |
|
long
tv_nsec
|
纳秒数,取值范围为
[
0
,
999999999
]
(公开成员对象) |
tv_sec
和
tv_nsec
的声明顺序未作规定。实现可能会向
timespec
添加其他数据成员。
注释
在某些平台上,
tv_nsec
的类型为
long
long
,这目前不符合 C++ 标准,但在 C 语言中自 C23 起被允许。
示例
运行此代码
#include <ctime> #include <iostream> int main() { std::timespec ts; std::timespec_get(&ts, TIME_UTC); char buff[0x80]; std::strftime(buff, sizeof buff, "%D %T", std::gmtime(&ts.tv_sec)); // auto [sec, nsec] = ts; // UB: 不应使用结构化绑定,因为 // 声明顺序和数据成员列表是未指定的 std::cout << "当前时间: " << buff << " (UTC)\n" << "原始 timespec.tv_sec: " << ts.tv_sec << '\n' << "原始 timespec.tv_nsec: " << ts.tv_nsec << '\n'; }
可能的输出:
当前时间: 04/06/23 12:03:31 (UTC) 原始 timespec.tv_sec: 1680782611 原始 timespec.tv_nsec: 678437213
参见
|
(C++17)
|
基于给定时间基准返回以秒和纳秒表示的日历时间
(函数) |
|
日历时间类型
(类) |
|
|
C 文档
关于
timespec
|
|