In this article, we will discuss different ways to add given hours to current time in python using timedelta, pandas or relativedelta.

Add hours to current time in Python using timedelta

Python provides a module datetime for manipulation of date and time. It consists of following classes,

  • datetime.date: An object of date class specifies a date using year, month and day.
  • datetime.time: An object of time class specifies a timestamp using hour, minute, second, microsecond, and tzinfo.
  • datetime.datetime: An object of datetime is a combination of a date and a time.
  • datetime.timedelta: A duration, that represents the difference between two dates or times or datetimes.
  • datetime.tzinfo: It contains the timezone information.

To add few hours to current time, we are going to use the datetime and timedelta classes of the datetime module.

Steps to add N hours to datetime are as follows,

  • Step 1: Get the current time in python using datetime.now(). It returns a datetime object pointing to the current time in local time zone.
  • Step 2: Create an object of timedelta, to represent an interval of N hours. For that, pass the argument hours with value N in the timedelta constructor.
  • Step 3: Add the timedelta object to the datetime object pointing to current time. It will give us a new datetime object, pointing to a new timestamp in future i.e. N hours from now.
  • Step 4: If you want the final timestamp in string format, then convert the datetime object to string using strftime(). You can pass the format string as argument and it will convert the datetime object to a string of the specified format.

Let’s understand with an example,

Add 2 hours to current time in python

from datetime import datetime
from datetime import timedelta

# Get current time in local timezone
current_time = datetime.now()
print('Current Time: ', current_time)

n = 2
# Add 2 hours to datetime object containing current time
future_time = current_time + timedelta(hours=n)

print('Future Time (2 hours from now ): ', future_time)

# Convert datetime object to string in specific format 
future_time_str = future_time.strftime('%m-%d-%Y %H:%M:%S.%f')
print('Future Time as string object: ', future_time_str)

Output

Current Time:  2021-06-19 22:48:43.582763
Future Time (2 hours from now ):  2021-06-20 00:48:43.582763
Future Time as string object:  06-20-2021 00:48:43.582763 

First we fetched the current time using datetime.now() function and then added 2 hours to the current time using timedelta. It gave us a new datetime object, pointing to a future timestamp i.e. 2 hours from now. Then we converted the datetime object to the required string format using datetime.strftime(). If your timestamp string is of some other format, then you can change the format according to that while using strptime() & strftime().

Add hours to current time in Python using Pandas

Pandas provide a class DateOffset, to store the duration or interval information. It is mostly used to increment or decrement a timestamp. It can be used with datetime module to add N hours to current time. Let’s understand with an example,

Add 2 hours to current time in python

from datetime import datetime
import pandas as pd

# Get current time in local timezone
current_time = datetime.now()
print('Current Time: ', current_time)

n = 2
# Add 2 hours to datetime object containing current time
future_time = current_time + pd.DateOffset(hours=n)

print('Future Time (2 hours from now ): ', future_time)

# Convert datetime object to string in specific format 
future_time_str = future_time.strftime('%m-%d-%Y %H:%M:%S.%f')
print('Future Time as string object: ', future_time_str)

Output

Current Time:  2021-06-19 22:48:48.407490
Future Time (2 hours from now ):  2021-06-20 00:48:48.407490
Future Time as string object:  06-20-2021 00:48:48.407490 

We created a DateOffset object by passing hours argument as 2. Then we added this DateOffset object to the datetime object pointing to the current time. It returned a new datetime object pointing to a future timestamp i.e. 2 hours from now.

Add hours to current time in python using relativedelta

In python, the dateutil module provides a class relativedelta, which represents an interval of time. The relativedelta class has all the attributes to represent a duration i.e. Year, Month, Day, Hours, Minutes, Seconds and Microseconds. So, to add hours to a current time, we can create a relativedelta object to represents the interval in hours and then add it to the datetime object containing the current time. Let’s understand with an example,

Add 2 hours to current time in python

from datetime import datetime
from dateutil.relativedelta import relativedelta

# Get current time in local timezone
current_time = datetime.now()
print('Current Time: ', current_time)

n = 2
# Add 2 hours to datetime object containing current time
future_time = current_time + relativedelta(hours=n)

print('Future Time (2 hours from now ): ', future_time)

# Convert datetime object to string in specific format 
future_time_str = future_time.strftime('%m-%d-%Y %H:%M:%S.%f')
print('Future Time as string object: ', future_time_str)

Output

Current Time:  2021-06-19 22:48:48.415492
Future Time (2 hours from now ):  2021-06-20 00:48:48.415492
Future Time as string object:  06-20-2021 00:48:48.415492 

We fetched the current timestamp as datetime object using datetime.now(). Then we created a relativedelta object representing 2 hours by passing hours argument as 2. Then added that to the datetime object. It returned a new datetime object pointing to a future timestamp i.e. two hours from now.

Summary:

We learned about three different ways to add N hours to current time in python.