跳到主要内容

time.h

类型定义

typedef time_t

time_t 是从 1970-01-01 00:00:00 UTC 开始的秒数,在 32 位的设备上是 long,在 64 位的设备上是 long long。因此 32 位的系统在 2038 年可能会出问题,而 64 位的系统中能表示的时间达到数十亿年。

typedef clock_t

处理器时间,除以 CLOCKS_PER_SEC 后的单位为秒。

struct tm

struct tm
{
int tm_sec; /* Seconds. [0-60] (1 leap second) */
int tm_min; /* Minutes. [0-59] */
int tm_hour; /* Hours. [0-23] */
int tm_mday; /* Day. [1-31] */
int tm_mon; /* Month. [0-11] */
int tm_year; /* Year - 1900. */
int tm_wday; /* Day of week. [0-6] */
int tm_yday; /* Days in year.[0-365] */
int tm_isdst; /* DST. [-1/0/1]*/
};

表示时间的结构体,DST 指夏令时。

常量

CLOCKS_PER_SEC

每秒的时钟周期数。

函数

clock(void)

clock_t clock(void)

返回从程序开始运行的处理器时间,除以 CLOCKS_PER_SEC 后的单位为秒。由于它只计算 CPU 用时,而不包括等待 I/O 或其他系统调用的时间,在分时操作系统上检验程序运行效率更加准确。

time(time_t *)

time_t time(time_t *timer)

返回当前的时间,既可以用返回值接收(此时参数传 NULL 即可),也可以用地址接收。

difftime(time_t, time_t)

double difftime(time_t time1, time_t time2)

比较两个时间。如果使用 time1 - time2 那么精度在秒,而使用该函数,可以将精度精确到秒以下。

mktime(tm *)

time_t mktime(struct tm *timeptr)

tm 结构体时间转换成 time_t 时间戳。反向函数 gmtime()

strftime(char *, size_t, char *, tm *)

size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr)

格式化字符串 tm,参数分别是目标字符串,目标字符串最大空间,时间格式,时间结构体,返回格式化后的字符串长度。时间格式的写法这里省略,以后用到了再说。

gmtime(time_t *)

struct tm *gmtime(const time_t *timer)

time_t 时间戳时间转换成 tm 结构体。反向函数 mktime()

localtime(time_t *)

struct tm *localtime(const time_t *timer)

gmtime() 一样,但是会计算当地时间。

asctime(tm *)

char *asctime(const struct tm *timeptr)

返回 Www Mmm dd hh:mm:ss yyyy 格式字符串,比 strftime() 简单。

ctime(time_t *)

char *ctime(const time_t *timer)

返回 Www Mmm dd hh:mm:ss yyyy 格式字符串,从个人试验来看返回的是 localtime。


Comments
  • Latest
  • Oldest
  • Hottest
No comment yet.
Powered by Waline v3.4.1