In this article, you will learn to create a datetime object from a string (with the help of examples).
The strptime() method creates a datetimearrow-up-right object from the given string.
Note: You cannot create datetime object from every string. The string needs to be in a certain format.
Example 1: string to datetime object
Copy
from datetime import datetime
date_string = "21 June, 2018"
print("date_string =", date_string)
print("type of date_string =", type(date_string))
date_object = datetime.strptime(date_string, "%d %B, %Y")
print("date_object =", date_object)
print("type of date_object =", type(date_object)) When you run the program, the output will be:
Copy
date_string = 21 June, 2018
type of date_string = <class 'str'>
date_object = 2018-06-21 00:00:00
type of date_object = <class 'datetime.datetime'> How strptime() works?
The strptime() class method takes two arguments:
string (that be converted to datetime)
Based on the string and format code used, the method returns its equivalent datetime object.
In the above example:
How strptime() works in Python? Here,
%d - Represents the day of the month. Example: 01, 02, ..., 31
%B - Month's name in full. Example: January, February etc.
%Y - Year in four digits. Example: 2018, 2019 etc.
Example 2: string to datetime object
When you run the program, the output will be:
The table below shows all the format codes that you can use.
Abbreviated weekday name.
Weekday as a decimal number.
Day of the month as a zero-padded decimal.
Day of the month as a decimal number.
Month as a zero-padded decimal number.
Month as a decimal number.
Year without century as a zero-padded decimal number.
Year without century as a decimal number.
Year with century as a decimal number.
Hour (24-hour clock) as a zero-padded decimal number.
Hour (24-hour clock) as a decimal number.
Hour (12-hour clock) as a zero-padded decimal number.
Hour (12-hour clock) as a decimal number.
Minute as a zero-padded decimal number.
Minute as a decimal number.
Second as a zero-padded decimal number.
Second as a decimal number.
Microsecond as a decimal number, zero-padded on the left.
UTC offset in the form +HHMM or -HHMM.
Day of the year as a zero-padded decimal number.
Day of the year as a decimal number.
Week number of the year (Sunday as the first day of the week). All days in a new year preceding the first Sunday are considered to be in week 0.
Week number of the year (Monday as the first day of the week). All days in a new year preceding the first Monday are considered to be in week 0.
Locale’s appropriate date and time representation.
Locale’s appropriate date representation.
Locale’s appropriate time representation.
ValueError in strptime()
If the string (first argument) and the format code (second argument) passed to the strptime() doesn't match, you will get ValueError. For example:
If you run this program, you will get an error.