非常教程

C参考手册

日期与时间 | Date and time

timespec_get

在头文件<time.h>中定义

int timespec_get(struct timespec * ts,int base)

(自C11以来)

#define TIME_UTC / *实现定义的* /

(自C11以来)

1)修改timespec指向的对象以ts在时基中保存当前日历时间base

2)扩展为适合用作base参数的值timespec_get

其他的宏常量TIME_可以由实现提供,以指示附加的时基。

如果baseTIME_UTC,那么。

  • ts-> tv_sec被设置为自实现定义时期以来的秒数,被截断为整个值
  • ts-> tv_nsec成员设置为纳秒的整数倍数,取整为系统时钟的分辨率

参数

TS

-

指向struct timespec类型的对象的指针

基础

-

TIME_UTC或指示时基的另一个非零整数值

返回值

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

笔记

POSIX函数clock_gettime(CLOCK_REALTIME,ts)也可以用来填充timespec自Epoch以来的时间。

#include <stdio.h>
#include <time.h>
 
int main(void)
{
    struct timespec ts;
    timespec_get(&ts, TIME_UTC);
    char buff[100];
    strftime(buff, sizeof buff, "%D %T", gmtime(&ts.tv_sec));
    printf("Current time: %s.%09ld UTC\n", buff, ts.tv_nsec);
}

输出:

Current time: 02/18/15 14:34:03.048508855 UTC

参考

  • C11标准(ISO / IEC 9899:2011):
    • 7.27.2.5 timespec_get函数(p:390)
C

C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。