C Reference function strftime()

Usage of strftime():

size_t strftime ( char * ptr_dest, size_t maxsize, const char * format, const struct tm * ptr_time );


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:


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
%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
%w Weekday as a decimal number with Sunday as 0 (0-6) 3
%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 %

* 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.


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.


Comments are closed.