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/YY date, equivalent to%m/%d/%y | 08/23/01 |
%e | Day of the month, space-padded (1-31 ) | 23 |
%F | ShortYYYY-MM-DD date, 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:MM time, 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 | % |
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 |