清醒疯子 2018-01-03
function
<ctime>
size_t strftime (char* ptr, size_t maxsize, const char* format,
const struct tm* timeptr );Format time as string
Copies into ptr the content of format, expanding its format specifiers into the corresponding values that represent the time described in timeptr, with a limit of maxsize characters.
%) sign, and are:| 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 (01-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 determined, no characters | +100 |
%z | Timezone name or abbreviation * If timezone cannot be determined, no characters | CDT |
%% | A % 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 |
If the length of the resulting C string, including the terminating null-character, doesn't exceed maxsize, the function returns the total number of characters copied to ptr (not including the terminating null-character).
Otherwise, it returns zero, and the contents of the array pointed by ptr are indeterminate.
Particular library implementations may support additional specifiers or combinations.
Those listed here are supported by the latest C and C++ standards (both published in 2011), but those in yellow were introduced in C99 (only required for C++ implementations since C++11), and may not be supported by libraries that comply with older standards.
1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br /> | <cite>/* strftime example */</cite>
<dfn>#include <stdio.h> </dfn><cite>/* puts */</cite><dfn></dfn>
<dfn>#include <time.h> </dfn><cite>/* time_t, struct tm, time, localtime, strftime */</cite><dfn></dfn>
<var>int</var> main ()
{
time_t rawtime;
<var>struct</var> tm * timeinfo;
<var>char</var> buffer [80];
time (&rawtime);
timeinfo = localtime (&rawtime);
strftime (buffer,80,<kbd>"Now it's %I:%M%p."</kbd>,timeinfo);
puts (buffer);
<var>return</var> 0;
} | Edit & Run |
Example output:
<samp> Now it's 03:21PM. </samp> |