Nameerror: name ‘timedelta’ is not defined

Errors are inevitable, and one of them is nameerror: name ‘timedelta’ is not defined.

This error message is quite confusing and frustrating, especially if you’re new to this.

Well, you don’t have to worry because, in this article, we’ll help you to fix the name ‘timedelta’ is not defined.

What is “timedelta”?

The timedelta is an object that is part of Python’s datetime module that represents a duration or distinction between two points in time.

That allows users to perform calculations and manipulations on time intervals, such as adding or subtracting time, comparing durations, or converting time units.

Using “timedelta” makes it easier for the users to handle such as:

✔ Time-based calculations.

✔ Schedule events.

✔ Measures durations between different timestamps.

What is “nameerror name ‘timedelta’ is not defined”?

The namerror: name ‘timedelta’ is not defined error message occurs when you are trying to use the timedelta class, but you did not import it first.

Here’s the example scenario wherein you will encounter this error:

def calculate_time_difference(start_time, end_time):
    duration = end_time - start_time
    return duration

start_time = datetime.datetime(2022, 1, 1)
end_time = datetime.datetime(2023, 1, 2)

time_difference = calculate_time_difference(start_time, end_time)

If you try to run this code, as a result, it will throw an error message:

C:\Users\pies-pc2\PycharmProjects\pythonProject\venv\Scripts\python.exe C:\Users\pies-pc2\PycharmProjects\pythonProject\ 
Traceback (most recent call last):
  File "C:\Users\pies-pc2\PycharmProjects\pythonProject\", line 5, in <module>
    start_time = datetime.datetime(2022, 1, 1)
NameError: name 'datetime' is not defined

This error message indicates that the Python interpreter cannot find the variable or function with the specified name. Specifically, in this case, the timedelta object from the datetime module is not accessible in your Python environment by default.

Why does the “name ‘timedelta’ is not defined” error occurs?

This error message can occur because of several reasons, such as:

❌ When the timedelta object is not imported from the datetime module.

❌ When there are typos in the function name.

❌ When you use it in incorrect scope.

How to fix the “nameerror: name ‘timedelta’ is not defined”?

To fix the nameerror name ‘timedelta’ is not defined error message, ensure that the timedelta object is imported from the datetime module before using it.

Solution 1: Import the timedelta

Import the timedelta object from the datetime module.

Here’s the solution for the example that we use above:

✅ from datetime import datetime, timedelta

def calculate_time_difference(start_time, end_time):
    duration = end_time - start_time
    return duration

start_time = datetime(2022, 1, 1)
end_time = datetime(2023, 2, 2)

time_difference = calculate_time_difference(start_time, end_time)


397 days, 0:00:00

You can simply use the following code to import timedelta:

✅ from datetime import timedelta

You can also import the entire datetime module:

✅ import datetime

Note: Ensure that you imported timedelta is imported correctly from the datetime module.

The datetime module is in the Python standard library. However, you need to import it before using the module in your Python code.

Solution 2: Use the qualified name of the timedelta

Rather than importing the timedelta function from the datetime module, you can use its fully qualified name datetime.timedelta to access it.

import datetime

time_difference = datetime.timedelta(days=10)


10 days, 0:00:00

Solution 3: Check for typos

Ensure that you have spelled timedelta correctly because it is one of the common mistakes of users that need to address.

Frequently Asked Questions(FAQs)

How to import the timedelta object?

You can import the timedelta object correctly by following the import statement below and putting it at the top or beginning of your code:

 from datetime import timedelta

I still getting the error after importing timedelta correctly, what should I do?

When you correctly imported the timedelta object, and still get this error message. 

You must double-check if there are any typographical errors, ensure the correct scope, and verify the Python environment and package dependencies.

How to avoid NameError in Python code?

To avoid NameError in your Python code, ensure to import necessary modules, double-check variable names for to avoid typos, and ensure proper scoping.


The namerror: name ‘timedelta’ is not defined error message occurs when you are trying to use the timedelta class, but you did not import it first.

This article discusses what this error is all about and already provides different solutions to help you fix this error.

You could also check out other “nameerror” articles that may help you in the future if you encounter them.

We are hoping that this article helps you fix the error. Thank you for reading itsourcecoders 😊

Leave a Comment