Python time strftime() Method



Similar to the Python time asctime() method, the strftime() method also converts a tuple or struct_time representing, either in UTC or the local time, to a 24-character string of the following form: 'Mon Jan 9 10:51:77 2023'. However, the contrast occurs when the strftime() method formats the string output in a user-friendly way.

This method accepts two arguments: one being the tuple or object representing a specific time and the other being a directive. Directives are used to format the date and time string. They are denoted using a "%" symbol followed by an abbreviation representing certain element of a time. The following directives can be embedded in the format string −

Directives

  • %a - abbreviated weekday name

  • %A - full weekday name

  • %b - abbreviated month name

  • %B - full month name

  • %c - preferred date and time representation

  • %C - century number (the year divided by 100, range 00 to 99)

  • %d - day of the month (01 to 31)

  • %D - same as %m/%d/%y

  • %e - day of the month (1 to 31)

  • %g - like %G, but without the century

  • %G - 4-digit year corresponding to the ISO week number (see %V).

  • %h - same as %b

  • %H - hour, using a 24-hour clock (00 to 23)

  • %I - hour, using a 12-hour clock (01 to 12)

  • %j - day of the year (001 to 366)

  • %m - month (01 to 12)

  • %M - minute

  • %n - newline character

  • %p - either am or pm according to the given time value

  • %r - time in a.m. and p.m. notation

  • %R - time in 24 hour notation

  • %S - second

  • %t - tab character

  • %T - current time, equal to %H:%M:%S

  • %u - weekday as a number (1 to 7), Monday=1. Warning: In Sun Solaris Sunday=1

  • %U - week number of the current year, starting with the first Sunday as the first day of the first week

  • %V - The ISO 8601 week number of the current year (01 to 53), where week 1 is the first week that has at least 4 days in the current year, and with Monday as the first day of the week

  • %W - week number of the current year, starting with the first Monday as the first day of the first week

  • %w - day of the week as a decimal, Sunday=0

  • %x - preferred date representation without the time

  • %X - preferred time representation without the date

  • %y - year without a century (range 00 to 99)

  • %Y - year including the century

  • %Z or %z - time zone or name or abbreviation

  • %% - a literal % character

Note: Additional directives may be supported on certain platforms, but only the ones listed here have a meaning standardized by ANSI C.

Syntax

Following is the syntax for the Python time strftime() method −

time.strftime(format[, t])

Parameters

  • t − This is the time in number of seconds to be formatted.
  • format − This is the directive which would be used to format given time.

Return Value

This method returns the formatted string representing date and time.

Example

The following example shows the usage of the Python time strftime() method. We are representing time using a tuple and passing it as an argument to this method; multiple directives are used to format the return value in the form of a string denoting date and time in an understandable way.

import time

t = (2009, 2, 17, 17, 3, 38, 1, 48, 0)

print(time.strftime("%b %d %Y %H:%M:%S", t))

When we run above program, it produces following result −

Feb 17 2009 17:03:38

Example

Instead of arranging the data and time into a string, we can directly use this method to return the date and time in standard formats (DD/MM/YY and HH:MM:SS) using certain directives.

Here, we are passing the directives "%D and %T" as format parameter values to the method; without passing any specific tuple or object representing time. This scenario will make the method consider current local time, by default; and it returns the standard date and time format for it.

import time

print("Current date and time:")
print(time.strftime("%D%n%T"))

If we compile and run the program above, the output is displayed as follows −

Current date and time:
01/11/23
11:04:40

Example

This method also returns the UTC time.

In this example, we are using the gmtime() method to obtain the current UTC time by not passing any argument to it. This return value is passed as an argument to the strftime() method representing time which is formatted using the directives "%B", "%d", "%Y" to format the date and "%H:%M:%S" to format the time.

import time

t = time.gmtime()
print(time.strftime("Date: %B %dth, %Y%nTime: %H:%M:%S", t))

The output for the program above is displayed as follows −

Date: January 11th, 2023
Time: 06:37:39

Example

The return value obtained from the time() method can be formatted by passing it as an argument to methods like gmtime() or strftime().

In the following example, we obtained the current time in seconds using the time() method. These seconds are passed as an argument to the gmtime() method to represent it using various fields of the struct_time object to indicate the elements of time. However, as an extra step, we can also try to simplify the structure of this object by passing it as an argument to the strftime() method.

import time

t = time.time()
print("Current UTC Time in seconds:", t)

#Formatting the seconds obtained from time() using gmtime()
fmt = time.gmtime(t)
print("Current Formatted UTC Time:", fmt)

#Formatting the object obtained from gmtime() using strftime()
strf = time.strftime("%D %T", fmt)
print("Current Formatted UTC Time:",strf)

Current UTC Time in seconds: 1673435474.7526345
Current Formatted UTC Time: time.struct_time(tm_year=2023, tm_mon=1, tm_mday=11, tm_hour=11, tm_min=11, tm_sec=14, tm_wday=2, tm_yday=11, tm_isdst=0)
Current Formatted UTC Time: 01/11/23 11:12:11
python_date_time.htm
Advertisements