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);//strftimecout << 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 |
Short MM/DD/YY date, equivalent to %m/%d/%y |
08/23/01 |
%e |
Day of the month, space-padded ( 1-31) |
23 |
%F |
Short YYYY-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-hour HH: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 as 1 (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 as 0 (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 |