1、 time() 获取当前时间
time_t timer;
time(&timer);
相当于 timer = time(NULL); 或 timer = time(0);
可用于随机数的生成。
srand( (unsigned)time(0));
2、localtime() 把一个时间戳转换 年月日表示格式
3、ctime() 把一个 时间戳转换为 年月日表示的字符串
char* ctime (const time_t * timer);
struct tm * date;
time_t now;
time(&now);
date = localtime(&now);
//ctime() 演示
char * datestr;
datestr = ctime(&now);
//mktime 演示
time_t resTm = mktime(date);
//strftime
cout << now << endl;
cout << date->tm_year << " " << date->tm_mon << " " << date->tm_mday << endl;
cout << datestr << endl;
cout << resTm << endl;
4 differtime 返回相隔的时(以秒为单位)
double difftime (time_t end, time_t beginning);
5 strftime()
size_t strftime (char* ptr, size_t maxsize, const char* format,
const struct tm* timeptr );
把 timeptr 所指向的 时间格式化显示, 放在 pstr中。
specifier Replaced by Example
%a
Abbreviated weekday name *
Thu
%A
Full weekday name *
Thursday
%b
Abbreviated month name *
Aug
%B
Full month name *
August
%c
Date and time representation *
Thu Aug 23 14:55:02 2001
%C
Year divided by 100 and truncated to integer (00-99)
20
%d
Day of the month, zero-padded (01-31)
23
%D
ShortMM/DD/YYdate, equivalent to%m/%d/%y
08/23/01
%e
Day of the month, space-padded (1-31)
23
%F
ShortYYYY-MM-DDdate, equivalent to%Y-%m-%d
2001-08-23
%g
Week-based year, last two digits (00-99)
01
%G
Week-based year
2001
%h
Abbreviated month name * (same as%b)
Aug
%H
Hour in 24h format (00-23)
14
%I
Hour in 12h format (01-12)
02
%j
Day of the year (001-366)
235
%m
Month as a decimal number (01-12)
08
%M
Minute (00-59)
55
%n
New-line character ('\n')
%p
AM or PM designation
PM
%r
12-hour clock time *
02:55:02 pm
%R
24-hourHH:MMtime, equivalent to%H:%M
14:55
%S
Second (00-61)
02
%t
Horizontal-tab character ('\t')
%T
ISO 8601 time format (HH:MM:SS), equivalent to%H:%M:%S
14:55:02
%u
ISO 8601 weekday as number with Monday as1(1-7)
4
%U
Week number with the first Sunday as the first day of week one (00-53)
33
%V
ISO 8601 week number (00-53)
34
%w
Weekday as a decimal number with Sunday as0(0-6)
4
%W
Week number with the first Monday as the first day of week one (00-53)
34
%x
Date representation *
08/23/01
%X
Time representation *
14:55:02
%y
Year, last two digits (00-99)
01
%Y
Year
2001
%z
ISO 8601 offset from UTC in timezone (1 minute=1, 1 hour=100)
If timezone cannot be termined, no characters
+100
%Z
Timezone name or abbreviation *
If timezone cannot be termined, no characters
CDT
%%
A%sign
%
* The specifiers marked with an asterisk (*) are locale-dependent.
Note:
Yellow rows indicate specifiers and sub-specifiers introduced by C99. Since C99, two locale-specific modifiers can also be inserted between the percentage sign (
%
) and the specifier proper to request an alternative format, where applicable:
Modifier Meaning Applies to
E
Uses the locale's alternative representation
%Ec %EC %Ex %EX %Ey %EY
O
Uses the locale's alternative numeric symbols
%Od %Oe %OH %OI %Om %OM %OS %Ou %OU %OV %Ow %OW %Oy