Skip to Content

What Does AttributeError: Module ‘datetime’ Has No Attribute ‘strptime’ Mean?

What does AttributeError: module 'datetime' has no attribute 'strptime'mean and how can you easily fix it?

When parsing a string and transforming that to a date you can make use of the function strptime in the datetime module.

To use this function simply import datetime as you normally would with any module, and use the function as follows:

>>> import datetime
>>> datetime.datetime.strptime("16/06/22", "%d/%m/%y")
datetime.datetime(2022, 6, 16, 0, 0)

Notice in the above code that the function strptime is found within the module datetime and class datetime, therefore, if your code just has import datetime at the top you will need to enter the module and class followed by the function.

A workaround is to import the module and class in your import declaration, like so:

>>> from datetime import datetime
>>> datetime.strptime("17/08/22", "%d/%m/%y")
datetime.datetime(2022, 8, 17, 0, 0)

Notice in this code that the strptime only has the direct class datetime to reference as the import declaration on pulled that class from the module.

Another popular mistake with this approach is thinking you can import strptime from the import declaration, like so:

>>> from datetime import strptime
ImportError: cannot import name 'strptime' from 'datetime' 

As you can see from this error you cannot strptime as it’s a function in the datetime class found in the datetime module.

Summary

If you’re experiencing issues with the strptime method check your import declaration for datetime. Have you imported the module and class or just the module? If you’ve imported the module and class using from datetime import datetime then your function call will be datetime.strptime(), otherwise if you’ve used import datetime you would need to reference the module and class along with the function, like so: datetime.datetime.strptime().