struct tm* gmtime(const time_t* mem);
struct tm* localtime(const time_t* mem);
函数mktime()则正好相反,它是以存放有本地时间年、月、日等的tm结构作为参数,将其转换成time_t类型的秒值。mktime()函数的定义是:
time_t mktime(struct tm* tmptr); //成功返回日历时间,失败则返回-1
函数asctime()和ctime()可以获得人们可读的时间字符串,表示形式如同使用date命令所获得的系统默认的时间输出形式。它们的定义如下:
char* asctime(const struct tm* tmptr);//参数是指向存放有本地时间年、月、日等的tm结构的指针
char* ctime(const time_t* mem); //参数是指向日历时间的指针
函数strftime()是最为复杂的时间函数,可用于用户自定义时间的表示形式。函数strftime()的定义如下:
size_t strftime(char* buf, size_t maxsize, const char* format,
const struct tm* tmptr); //有空间则返回所存入数组的字符数,否则为0
格式
|
说明
|
例子
|
% a
|
缩写的周日名
|
Tue
|
% A
|
全周日名
|
Tuesday
|
% b
|
缩写的月名
|
Jan
|
% B
|
月全名
|
January
|
% c
|
日期和时间
|
Wed Aug 17 19:40:30 2005
|
% d
|
月日:[01, 31]
|
14
|
% H
|
小时(每天2 4小时):[00, 23]
|
19
|
% I
|
小时(上、下午各1 2小时[01, 12]
|
07
|
% j
|
年日:[001, 366]
|
014
|
% m
|
月:[01, 12]
|
01
|
% M
|
分:[00, 59]
|
40
|
% p
|
A M / P M
|
PM
|
% S
|
秒:[00, 61]
|
30
|
% U
|
星期日周数:[00, 53]
|
02
|
% w
|
周日:[ 0 =星期日,6 ]
|
2
|
% W
|
星期一周数:[00, 53]
|
02
|
% x
|
日期
|
08/17/05
|
% X
|
时间
|
19:40:30
|
% y
|
不带公元的年:[00, 991]
|
05
|
% Y
|
带公元的年
|
2005
|
% Z
|
时区名
|
MST
|