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。
Preview: