std::timespec_get 是 C++17 引入的一个函数,用于获取当前日历时间,并将其存储到 std::timespec 类型的对象中。它定义在头文件 <ctime> 中。
int timespec_get(std::timespec* ts, int base);
ts
:指向 std::timespec
类型对象的指针,用于存储获取的时间。base
:指定时间基底,标准中定义了 TIME_UTC
,表示协调世界时(UTC)。实现可以提供其他以 TIME_
开头的宏常量。base
的值。0
。如果 base
为 TIME_UTC
,函数会将 ts->tv_sec
设置为从实现定义的纪元(通常是 1970 年 1 月 1 日 00:00:00 UTC)开始的秒数,截断到整数值;ts->tv_nsec
设置为纳秒数,取整到系统时钟的分辨率。
#include <cstdio>
#include <ctime>
int main()
{
std::timespec ts;
std::timespec_get(&ts, TIME_UTC);
char buff[100];
std::strftime(buff, sizeof buff, "%D %T", std::gmtime(&ts.tv_sec));
std::printf("Current time: %s.%09ld UTC\n", buff, ts.tv_nsec);
}
Current time: 06/24/16 20:07:42.949494132 UTC
POSIX 系统中,clock_gettime(CLOCK_REALTIME, ts)
也可以用于获取从纪元开始的时间,并存储到 std::timespec
中。
如果你对 std::timespec_get
的具体实现或应用场景感兴趣,可以参考更多 C++ 时间相关的技术博客。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。