C Reference function strftime()
Usage of strftime():
size_t strftime ( char * ptr_dest, size_t maxsize, const char * format, const struct tm * ptr_time );
Parameters:
ptr_dest is a pointer to the destination array where the resulting C string is copied too.
The maxsize contains the maximum number of characters to be copied to ptr_dest.
ptr_time is a pointer to a tm structure that contains a calendar time.
Format contains a C string with any combination of regular characters and special format commands.
These format commands are replaced by the function to the corresponding values to represent the time specified in ptr_time.
They all begin with a percentage (%) sign. Take a look at the following table:
Command |
Replaced by |
An example |
%a | Abbreviated weekday name * | Fri |
%A | Full weekday name * | Friday |
%b | Abbreviated month name * | Dec |
%B | Full month name * | December |
%c | Date and time representation * | Fri Jan 11 13:53:32 2008 |
%d | Day of the month (01-31) | 11 |
%H | Hour in 24h format (00-23) | 13 |
%I | Hour in 12h format (01-12) | 01 |
%j | Day of the year (001-366) | 011 |
%m | Month as a decimal number (01-12) | 01 |
%M | Minute (00-59) | 53 |
%p | AM or PM | AM |
%S | Second (00-61) | 32 |
%U | Week number with the first Sunday as the first day of week one (00-53) | 11 |
%w | Weekday as a decimal number with Sunday as 0 (0-6) | 3 |
%W | Week number with the first Monday as the first day of week one (00-53) | 34 |
%x | Date * | 01/11/08 |
%X | Time * | 13:53:32 |
%y | Year, last two digits (00-99) | 08 |
%Y | Year | 2008 |
%Z | Time zone name or abbreviation | CDT |
%% | A % sign |
% |
* Are locale-dependent.
Note: some compilers may contain additional commands.
Return Value:
If the resulting C string fits in less than maxsize characters (including the terminating null-character) the total
number of characters copied to ptr_dest (not including the terminating null-character) is returned.
If it doesn’t fit, then zero will be returned. If this happens then the contents of the array is on determinate.
Explanation:
Copies into ptr_dest the content of format, expanding its format tags into the corresponding values as
specified by ptr_time, with a limit of maxsize characters.
Source code example of strftime():
#include <stdio.h>
#include <time.h>
int main ()
{
time_t time_raw_format;
struct tm * time_struct;
char buf [100];
time ( &time_raw_format );
time_struct = localtime ( &time_raw_format );
strftime (buf,100,"It is now: %I:%M%p.",time_struct);
puts (buf);
return 0;
}
Output example of the program above:
It is now: 02:45PM.