strftime
For quick syntax & options help with this function, type >>help (“time.strftime”) . This will list all the basic help that you are in need. If you are looking for a much more advanced option with this function, then refer this table.
About this function: This function is used to format the date & time returned from gmtime() or localtime() functions.
where ‘format’ is a combination of the directives listed below and it can be a combination of more than one directive passed as a string parameter. Lets see an example & then the list of all possible directives.
time.strftime example:
>>from time import gmtime, strftime
>>> strftime("%a, %d %b %Y %H:%M:%S")
'Wed, 13 Dec 2017 22:59:26'
>>> strftime("%a, %d %b %Y %H:%M:%S",gmtime())
'Wed, 13 Dec 2017 17:29:36'
>>>
Note: Second Parameter is optional. If left blank, time from localtime() will be considered.
Directives & their meaning:
| Derivative | Description | Example |
|---|---|---|
| %a | Weekday as locale’s abbreviated name. | Sun |
| %A | Weekday as locale’s full name. | Sunday |
| %w | Weekday as a decimal number, where 0 is Sunday and 6 is Saturday. | 1 |
| %d | Day of the month as a zero-padded decimal number. | 31 |
| %-d | Day of the month as a decimal number. (Platform specific) | 31 |
| %b | Month as locale’s abbreviated name. | Jan |
| %B | Month as locale’s full name. | January |
| %m | Month as a zero-padded decimal number. | 1 |
| %-m | Month as a decimal number. (Platform specific) | 1 |
| %y | Year without century as a zero-padded decimal number. | 17 |
| %Y | Year with century as a decimal number. | 2017 |
| %H | Hour (24-hour clock) as a zero-padded decimal number. | 10 |
| %-H | Hour (24-hour clock) as a decimal number. (Platform specific) | 10 |
| %I | Hour (12-hour clock) as a zero-padded decimal number. | 10 |
| %-I | Hour (12-hour clock) as a decimal number. (Platform specific) | 10 |
| %p | Locale’s equivalent of either AM or PM. | AM |
| %M | Minute as a zero-padded decimal number. | 5 |
| %-M | Minute as a decimal number. (Platform specific) | 5 |
| %S | Second as a zero-padded decimal number. | 5 |
| %-S | Second as a decimal number. (Platform specific) | 5 |
| %f | Microsecond as a decimal number, zero-padded on the left. | 0 |
| %z | UTC offset in the form +HHMM or -HHMM (empty string if the the object is naive). | |
| %Z | Time zone name (empty string if the object is naive). | CDT |
| %j | Day of the year as a zero-padded decimal number. | 365 |
| %-j | Day of the year as a decimal number. (Platform specific) | 365 |
| %U | Week number of the year (Sunday as the first day of the week) as a zero padded decimal number. All days in a new year preceding the first Sunday are considered to be in week 0. | 25 |
| %W | Week number of the year (Monday as the first day of the week) as a decimal number. All days in a new year preceding the first Monday are considered to be in week 0. | 25 |
| %c | Locale’s appropriate date and time representation. | Sun Jan 31 10:05:05 2017 |
| %x | Locale’s appropriate date representation. | 1/31/2017 |
| %X | Locale’s appropriate time representation. | 10:05:05 |
| %% | A literal ‘%’ character. | % |
Source Reference: This table is referred from the page strftime.org . This page only has one page with description about this function alone. The author has created this page since a quick reference.
From Python IDE
This is also a quick ref image for the command syntax & its parameters.

C or Python strftime
Python function strftime() call the same function from the c Library. It is just that it has a slightly different syntax. Other than that, the directives used as parameter are all the same.
Explanation for the Parameters:
- *str – Pointer to the output string
- maxsize – Size of the above output string
- format – same as Python strftime directive
- *timeptr – Pointer to input calendar time.
For the struct tm, the structure can be seen in time.h header file.
Sample code with strftime C
#include <stdio.h>
#include <time.h>
void main () {
time_t systime;
struct tm *calendartime;
char formattedtime[60];
time( &systime );
calendartime = localtime( &systime );
strftime(formattedtime,60,"%a, %d %b %Y %H:%M:%S", calendartime);
printf("Formatted date & time : |%s|\n", formattedtime );
}
Reference Links:
Some of the codes are copied, tested & modified a bit from the above links & posted here as a collection for a quick reference.