std::timespec_get

来自cppreference.com
< cpp‎ | chrono‎ | c
 
 
工具库
语言支持
类型支持(基本类型、RTTI)
库功能特性测试宏 (C++20)
动态内存管理
程序工具
协程支持 (C++20)
变参数函数
调试支持
(C++26)
三路比较
(C++20)
(C++20)(C++20)(C++20)
(C++20)(C++20)(C++20)
通用工具
日期和时间
函数对象
格式化库 (C++20)
(C++11)
关系运算符 (C++20 中弃用)
整数比较函数
(C++20)(C++20)(C++20)   
(C++20)
交换类型运算
(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 风格日期和时间工具
函数
时间操作
timespec_get
(C++17)
格式转换
常量
类型
(C++17)
 
在标头 <ctime> 定义
int timespec_get( std::timespec* ts, int base );
(1) (C++17 起)
#define TIME_UTC /* 由实现定义 */
(2) (C++17 起)
1) 修改 ts 所指向的 std::timespec 对象,使其保有时间基底 base 中的当前日历时间。
2) 展开成适合用作 std::timespec_getbase 实参的值。

实现可提供其他以 TIME_ 起始的宏常量,以指示另外的时间基底。

baseTIME_UTC,则

  • ts->tv_sec 为从实现定义的纪元开始的秒数,截断到整数值
  • ts->tv_nsec 成员为纳秒的整数,取整到系统时钟的分辨率

参数

ts - 指向 std::timespec 类型对象的指针
base - TIME_UTC 或另一指示时间基底的非零整数值

返回值

若成功则为 base 的值,否则为零。

注解

POSIX 函数 clock_gettime(CLOCK_REALTIME, ts) 亦可用于将从纪元开始的时间植入 std::timespec

示例

#include <ctime>
#include <iostream>
 
int main()
{
    std::timespec ts;
    std::timespec_get(&ts, TIME_UTC);
    char buf[100];
    std::strftime(buf, sizeof buf, "%D %T", std::gmtime(&ts.tv_sec));
    std::cout << "当前时间: " << buf << '.' << ts.tv_nsec << " UTC\n";
}

可能的输出:

当前时间: 06/24/16 20:07:42.949494132 UTC

参阅

(C++17)
以秒和纳秒表示的时间
(结构体)
返回自纪元起计的系统当前时间
(函数)