函数
<ctime>

time

time_t time (time_t* timer);
获取当前时间
获取当前日历时间,类型为 time_t

该函数返回此值,如果参数不是空指针,则还会将此值设置为 timer 指向的对象。

返回的值通常表示自 1970 年 1 月 1 日 UTC 00:00:00 以来经过的秒数(即当前的unix时间戳)。虽然库可能使用不同的时间表示:可移植的程序不应直接使用此函数返回的值,而应始终依赖对标准库其他元素的调用将其转换为可移植类型(例如 localtimegmtimedifftime)。

参数

timer
指向 time_t 类型对象的指针,时间值存储在此。
或者,此参数可以是一个空指针,在这种情况下,该参数不被使用(函数仍然返回一个 time_t 类型的值作为结果)。

返回值

作为 time_t 对象的当前日历时间。

如果参数不是空指针,则返回值与 timer 参数指向的位置中存储的值相同。

如果函数无法检索日历时间,则返回值为 -1

time_t 是一个基本的算术类型的别名,能够表示时间。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* time example */
#include <stdio.h>      /* printf */
#include <time.h>       /* time_t, struct tm, difftime, time, mktime */

int main ()
{
  time_t timer;
  struct tm y2k = {0};
  double seconds;

  y2k.tm_hour = 0;   y2k.tm_min = 0; y2k.tm_sec = 0;
  y2k.tm_year = 100; y2k.tm_mon = 0; y2k.tm_mday = 1;

  time(&timer);  /* get current time; same as: timer = time(NULL)  */

  seconds = difftime(timer,mktime(&y2k));

  printf ("%.f seconds since January 1, 2000 in the current timezone", seconds);

  return 0;
}

可能的输出
414086872 seconds since January 1, 2000 in the current timezone


数据竞争

timer 指向的对象将被修改(如果不是的)。

异常 (C++)

无异常保证:此函数从不抛出异常。

另见