Python Datetime | strptime method
Start your free 7-days trial now!
Python's datetime.strptime()
method converts a given string into a datetime
object. strptime()
is read as string parse time.
Parameters
1. date_string
| string
The string to be converted into datetime
object.
2. format
| format code
The format of the string provided. Refer to the belowlink for list of valid format codes.
Return value
A datetime
object.
Examples
Date string to datetime object
To convert the date string "19 March, 2020"
to a datetime object:
from datetime import datetime
date_string = "19 March, 2020"date_object = datetime.strptime(date_string, "%d %B, %Y")
print(date_object)
2020-03-19 00:00:00
Date and time string to datetime object
To convert the date and time string "Jan 1 2020 3:50PM"
to a datetime object:
from datetime import datetime
datetime_string = 'Jan 1 2020 3:50PM'datetime_object = datetime.strptime(datetime_string, '%b %d %Y %I:%M%p')
print(datetime_object)
2020-01-01 15:50:00
ValueError
A ValueError
is raised if date_string
(first argument) and the format
(second argument) passed to strptime()
do not match:
from datetime import datetime
datetime_object = datetime.strptime('Jan 1 2020 3:50PM', "%d %m %Y")
print(date_object)
ValueError: time data 'Jan 1 2020 3:50PM' does not match format '%d %m %Y'
The format should correctly be provided as '%b %d %Y %I:%M%p'
.
List of Format Codes
The below tables provides information of the various directives used for expressing date formats:
Directive | Meaning | Example |
---|---|---|
| Weekday as locale’s abbreviated name. | Sun, Mon, …, Sat (en_US); So, Mo, …, Sa (de_DE) |
| Weekday as locale’s full name. | Sunday, Monday, …, Saturday (en_US); Sonntag, Montag, …, Samstag (de_DE) |
| Weekday as a decimal number, where 0 is Sunday and 6 is Saturday. | 0, 1, …, 6 |
| Day of the month as a zero-padded decimal number. | 01, 02, …, 31 |
| Month as locale’s abbreviated name. | Jan, Feb, …, Dec (en_US); Jan, Feb, …, Dez (de_DE) |
| Month as locale’s full name. | January, February, …, December (en_US); Januar, Februar, …, Dezember (de_DE) |
| Month as a zero-padded decimal number. | 01, 02, …, 12 |
| Year without century as a zero-padded decimal number. | 00, 01, …, 99 |
| Year with century as a decimal number. | 0001, 0002, …, 2013, 2014, …, 9998, 9999 |
| Hour (24-hour clock) as a zero-padded decimal number. | 00, 01, …, 23 |
| Hour (12-hour clock) as a zero-padded decimal number. | 01, 02, …, 12 |
| Locale’s equivalent of either AM or PM. | AM, PM (en_US);am, pm (de_DE) |
| Minute as a zero-padded decimal number. | 00, 01, …, 59 |
| Second as a zero-padded decimal number. | 00, 01, …, 59 |
| Microsecond as a decimal number, zero-padded on the left. | 000000, 000001, …, 999999 |
| UTC offset in the form ±HHMM[SS[.ffffff]] (empty string if the object is naive). | (empty), +0000, -0400, +1030, +063415, -030712.345216 |
| Time zone name (empty string if the object is naive). | (empty), UTC, EST, CST |
| Day of the year as a zero-padded decimal number. | 001, 002, …, 366 |
| 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. | 00, 01, …, 53 |
| 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. | 00, 01, …, 53 |
| Locale’s appropriate date and time representation. | Tue Aug 16 21:30:00 1988 (en_US);Di 16 Aug 21:30:00 1988 (de_DE) |
| Locale’s appropriate date representation. | 08/16/88 (None);08/16/1988 (en_US);16.08.1988 (de_DE) |
| Locale’s appropriate time representation. | 21:30:00 (en_US);21:30:00 (de_DE) |
| A literal '%' character. | % |