Python time strptime() Method



The Python time strptime() method parses a string representing a time, either in UTC or local time, according to a format.

The method accepts two arguments: one being the time to be parsed as a string and the other argument is the format specified. The return value will be obtained as an object struct_time.

The format parameter uses the same directives as those used by strftime(); it defaults to "%a %b %d %H:%M:%S %Y" which matches the formatting returned by ctime().

The following directives can be embedded in the format string −

Directive

  • %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

If string cannot be parsed according to format, or if it has excess data after parsing, ValueError is raised.

Syntax

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

time.strptime(string[, format])

Parameters

  • string − This is the time in string format which would be parsed based on the given format.

  • format − This is the directive which would be used to parse the given string.

Return Value

This return value is struct_time as returned by gmtime() or localtime().

Example

The following example shows the usage of the Python strptime() method.

import time

struct_time = time.strptime("30 Nov 00", "%d %b %y")
print("Returned object:", struct_time)

When we run above program, it produces following result −

Returned object: time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)

Example

If no value is passed as the format parameter to this method, the formatting will default to "%a %b %d %H:%M:%S %Y" making it similar to the return value of the ctime() method. However, the string argument must contain all the fields of the directive and in the same order.

import time

string = "Thu Nov 30 17:34:56 2000"
struct_time = time.strptime(string)
print("Returned object:", struct_time)

Returned object: time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=17, tm_min=34, tm_sec=56, tm_wday=3, tm_yday=335, tm_isdst=-1)

Example

If no value is passed as the format parameter to the method and the string argument does not contain all the fields present in the default directives, the method raises a ValueError. Let us look an example demonstrating the same below.

import time

string = "30 Nov 00"
struct_time = time.strptime(string)
print("returned tuple:", struct_time)

Traceback (most recent call last):
  File "d:\Tutorialspoint\Programs\Python Time Programs\strptimedemo.py", line 4, in 
    struct_time = time.strptime(string)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2544.0_x64__qbz5n2kfra8p0\lib\_strptime.py", line 562, in _strptime_time
    tt = _strptime(data_string, format)[0]
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2544.0_x64__qbz5n2kfra8p0\lib\_strptime.py", line 349, in _strptime
    raise ValueError("time data %r does not match format %r" %
ValueError: time data '30 Nov 00' does not match format '%a %b %d %H:%M:%S %Y'
python_date_time.htm
Advertisements