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
Frequently Asked:
- Python: Get difference between two datetimes in seconds
- Add hours to current time in Python
- Convert UTC datetime string to local time in Python
- Check if Date is Older than 30 Days in Python
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.