# How to Calculate Time Difference in Python

When running with dates and occasions in Python, you’ll continuously want to calculate the time distinction. In this instructional, you’ll learn the way to calculate the variation between two timestamps in hours, mins, and seconds.

By the tip of this instructional, you’ll have realized:

• how to use Python’s `datetime` module to paintings with dates and time,
• what `timedelta` items are, and the way they’re helpful, and
• calculate the time distinction between any two timestamps—in hours, mins, and seconds.

Let’s get began.

## How to use Python’s datetime module

To paintings with dates and occasions in Python, you’ll use the `datetime` module. The `datetime` module is a part of the Python same old library. So you’ll be able to pass forward and import it into your running atmosphere straight away, like this:

``import datetime``

In order to calculate the time distinction, you wish to have to create two other timestamps. You can make a selection to create:

• two `date` items,
• two `time` items, or
• a mixture of each `date` and `time``datetime` items.

### How to create a date object in Python

Let’s import the `date` elegance from datetime module. To create a date object in Python, you’ll be able to use the overall syntax `datetime.date(<yr>,<month>,<day>)`. Here’s an instance of constructing a `date` object `date1`:

``````from datetime import date
date1 = datetime.date(2022,3,27)
print(date1)

# Output: 2022-03-27``````

You can check out the code at the Geekflare Python compiler to check. Or, set up Python to your pc.

As proven above, whilst you print the date, it’s formatted in the `YYYY-MM-DD` structure for dates.

Note: Be positive to specify the month as an integer with out any main zeros. It’s most probably you’re used to including a number one 0 to the month when writing down dates.

For instance, to specify a date in June, the sixth month of the yr: use 6 and no longer 06.

For instance, check out operating the next code snippet—the place the month has been discussed as `03` as an alternative of simply `3`. You’ll see that it throws a Syntax Error as proven:

``````date1 = datetime.date(2022,03,27)

print(date1)

# Error Message
File "<ipython-input-12-6eb72084e6ce>", line 1
date1 = datetime.date(2022,03,27)
^
SyntaxError: invalid token``````

Let’s now see how to create a `time` object in Python.

### How to create a time object in Python

To create a time object, let’s import the `time` elegance. Any Python time object may also be created the use of the `time` elegance by way of specifying the next elegance attributes: `hour`, `minute`, `2d`, and `microsecond`.

However, all of those attributes are not obligatory. If you don’t specify a undeniable characteristic, say, `2d`, it’s set to `0` by way of default.

The following code snippet displays how you’ll be able to create a time object `time1`. As with the `date` object, you’ll be able to print out the `time` object to see the formatted time.

``````from datetime import time
time1 = datetime.time(13,27,45,4600)
print(time1)

# Output: 13:27:45.004600``````

### How to create a datetime object in Python

As you’ll be able to see, the `date` object has no details about the time. And the `time` object doesn’t comprise details about the date.

However, in observe, you’ll want each the date and time knowledge. So it’s really useful to use the `datetime` elegance as an alternative.

You can get entry to the `datetime` elegance and create `datetime` items in Python, as proven beneath:

``````dt1 = datetime.datetime(2022,3,27,13,27,45,46000)
print(dt1)

# Output: 2022-03-27 13:27:45.046000``````

Let’s now create every other datetime object `dt2` with out the `2d` characteristic. You can see that it’s set to `0` – the default price.

``````dt2 = datetime.datetime(2022,6,30,14,28)
print(dt2)

# Output: 2022-06-30 14:28:00``````

So a long way you’ve realized how to create timestamps in Python—as dates, occasions, and datetimes. It’s now time to see how you’ll be able to calculate the variation between any two timestamps.

Head over to the following segment to to find out.

## How to use timedelta object in Python

In Python, `timedelta` denotes a span of time. It’s the variation between two `date`, `time`, or `datetime` items.

If you upload or subtract two `date`, `time`, or `datetime` items, you’ll get a `timedelta` object. This `timedelta` object has helpful attributes and techniques that may assist calculate the time distinction.

Let’s pass forward and calculate the variation between the 2 `datetime` items `dt1` and `dt2`.

``````dt1 = datetime.datetime(2022,3,27,13,27,45,46000)
dt2 = datetime.datetime(2022,6,30,14,28)
tdelta = dt2 - dt1
print(tdelta)
print(kind(tdelta))

# Output
95 days, 1:00:14.954000
<elegance 'datetime.timedelta'>``````

From the above code snippet, you’ll be able to see that the `tdelta` variable holds the time distinction between `dt1` and `dt2`. And the kind of `tdelta` is verified to be of the category `timedelta` the use of Python’s built-in `type()` serve as.

Now let’s code every other instance.

## How to to find time distinction between two dates

Let’s take a easy but attention-grabbing instance.

Problem: To calculate the time distinction between the present date (these days) and your birthday.
To do that, set these days as the primary timestamp, and your birthday as the second one timestamp.

As a primary step, let’s create two `datetime` items:

• one for these days, let’s name it `these days`, and
• every other on your birthday, let’s name it `bday`

The `datetime` elegance has the `now()` approach that will give you the present native date and time. So let’s use it get `these days`—our reference date.

``````these days = datetime.datetime.now()
print(these days)

# Sample Output: 2022-01-22 09:10:18.489538``````

In the code beneath, substitute `bday` together with your birthday to calculate the time left on your birthday this yr.

If you’re reading this after your birthday has handed, be happy to set `bday` to your subsequent birthday.

``````bday = datetime.datetime(2022,8,30,11,59)
print(bday)

# Sample Output: 2022-08-30 11:59:00``````

The subsequent step is to calculate `time_diff` which is a `timedleta` object, as defined previous. Simply subtract `these days` out of your `bday`, and also you’ll have the time distinction.

``````time_diff = bday - these days

# Output
Your birthday is in 220 days, 2:46:00.127416``````

To know the selection of days left, use the times characteristic on `time_diff`, as proven:

``````tdays = time_diff.days
print(f"Your birthday is in tdays days.")

# Output
Your birthday is in 220 days.``````

## How to to find time distinction in seconds

Let’s now calculate what number of seconds away your birthday is.

To calculate the whole time distinction in seconds, use the `total_seconds()` approach at the `timedelta` object `time_diff`.

``````tsecs = time_diff.total_seconds()
print(f"Your birthday is tsecs seconds away.")

# Output
Your birthday is 19017960.127416 seconds away.``````

Well, that’s too lengthy a wait!

That mentioned, you presently know the way to calculate the time distinction between any two timestamps in seconds.

Let’s now revisit some fundamentals and write down the next. An afternoon consists of 24 hours, an hour is 60 mins lengthy, and 60 seconds make up a minute.

This is summarized in the picture beneath:

So to convert from seconds to mins, hours and days, you’ll be able to use the next desk, and divide by way of the corresponding conversion issue.

In the following sections, let’s convert the time distinction in seconds to mins and hours.

## How to to find time distinction in mins

To get the time distinction in mins, you handiest want to divide the whole seconds by way of 60.

Let’s divide `tsecs` by way of 60, and retailer it in a variable referred to as `tmins`, like this:

``````tmins = tsecs/60
print(f"Your birthday is tmins mins away.")

# Output
Your birthday is 316966.0021236 mins away.``````

## How to to find time distinction in hours

Now that you just’ve calculated the time distinction in mins, you’ll be able to divide that by way of an element of 60 to get the variation in hours. Or you want to divide the whole seconds by way of 60*60 = 3600.

``````thrs = tsecs/(60*60)
print(f"Your birthday is thrs hours away.")

# Output
Your birthday is 5282.76670206 hours away.``````

So you’ve now realized how to calculate the time distinction in any unit of your selection.

### Conclusion

In this instructional, you’ve realized how to:

• create and paintings with dates and occasions the use of Python’s `datetime` module,
• use `timedelta` items to get a span of time, or time distinction, and
• calculate the time distinction in seconds, mins, and hours.

Hope you discovered this instructional useful. Now that you realize all about calculating time distinction in Python, it’s time to put your talents to observe.

Happy finding out and coding!