Python add datetime and time

Pressing the Red Button

Using the built-in modules datetime and timedelta, you can perform date and time addition/subtraction in python:

from datetime import datetime from datetime import timedelta #Add 1 day print datetime.now() + timedelta(days=1) #Subtract 60 seconds print datetime.now() - timedelta(seconds=60) #Add 2 years print datetime.now() + timedelta(days=730) #Other Parameters you can pass in to timedelta: # days, seconds, microseconds, # milliseconds, minutes, hours, weeks #Pass multiple parameters (1 day and 5 minutes) print datetime.now() + timedelta(days=1,minutes=5)

Here is a python reference that gives more examples and advanced features:
http://docs.python.org/library/datetime.html

If you are coming from a .net or sql environment, here are the above examples in C# and SQL (Microsoft) for comparison:
C#

DateTime myTime = new DateTime(); --Add 1 day myTime.AddDays(1); --Subtract 60 seconds myTime.AddSeconds(-60); --Add 2 years myTime.AddYears(2);
--Add 1 day select DATEADD(day, 1, getdate()) --Subtract 60 seconds select DATEADD(second, -60, getdate()) --Add 2 years select DATEADD(Year, 2, getdate())

2 Responses to “Adding Dates and Times in Python”

Brian Hansen Says:
January 26th, 2012 at 1:05 pm Pretty useless examples unless you’re actually doing some string conversion too.

Tysonm Says:
September 17th, 2012 at 10:20 pm Great post, I believe blog owners should larn a lot from this website its really user friendly. So much good information on here :D.

Читайте также:  Meta keywords and description in html

Источник

Pressing the Red Button

Using the built-in modules datetime and timedelta, you can perform date and time addition/subtraction in python:

from datetime import datetime from datetime import timedelta #Add 1 day print datetime.now() + timedelta(days=1) #Subtract 60 seconds print datetime.now() - timedelta(seconds=60) #Add 2 years print datetime.now() + timedelta(days=730) #Other Parameters you can pass in to timedelta: # days, seconds, microseconds, # milliseconds, minutes, hours, weeks #Pass multiple parameters (1 day and 5 minutes) print datetime.now() + timedelta(days=1,minutes=5)

Here is a python reference that gives more examples and advanced features:
http://docs.python.org/library/datetime.html

If you are coming from a .net or sql environment, here are the above examples in C# and SQL (Microsoft) for comparison:
C#

DateTime myTime = new DateTime(); --Add 1 day myTime.AddDays(1); --Subtract 60 seconds myTime.AddSeconds(-60); --Add 2 years myTime.AddYears(2);
--Add 1 day select DATEADD(day, 1, getdate()) --Subtract 60 seconds select DATEADD(second, -60, getdate()) --Add 2 years select DATEADD(Year, 2, getdate())

2 Responses to “Adding Dates and Times in Python”

Brian Hansen Says:
January 26th, 2012 at 1:05 pm Pretty useless examples unless you’re actually doing some string conversion too.

Tysonm Says:
September 17th, 2012 at 10:20 pm Great post, I believe blog owners should larn a lot from this website its really user friendly. So much good information on here :D.

Источник

Python add datetime and time

Last updated: Feb 19, 2023
Reading time · 3 min

banner

# Add hours to datetime in Python

Use the timedelta() class from the datetime module to add hours to datetime, e.g. result = dt + timedelta(hours=10) .

The timedelta class can be passed a hours argument and adds the specified number of hours to the datetime.

Copied!
from datetime import datetime, timedelta d = '2023-11-24 09:30:00.000123' # 👇️ convert string to datetime object dt = datetime.strptime(d, '%Y-%m-%d %H:%M:%S.%f') print(dt) # 👉️ 2023-11-24 09:30:00.000123 result = dt + timedelta(hours=3) print(result) # 👉️ 2023-11-24 12:30:00.000123

add hours to datetime

Make sure to import the datetime and timedelta classes from the datetime module.

The example creates a datetime object from a datetime string and adds hours to it.

Copied!
from datetime import datetime, timedelta d = '2023-11-24 09:30:00.000123' # 👇️ convert string to datetime object dt = datetime.strptime(d, '%Y-%m-%d %H:%M:%S.%f') print(dt) # 👉️ 2023-11-24 09:30:00.000123 result_1 = dt + timedelta(hours=3) print(result_1) # 👉️ 2023-11-24 12:30:00.000123

The datetime.strptime() method returns a datetime object that corresponds to the provided date string, parsed according to the format.

If you have a date string that is formatted in a different way, use this table of the docs to look up the format codes you should pass as the second argument to the strptime() method.

# Using the datetime class to create a datetime object

The following example uses the datetime class to create a datetime object and the timedelta class to add hours to it.

Copied!
from datetime import datetime, timedelta dt = datetime(2023, 9, 24, 9, 30, 35) print(dt) # 👉️ 2023-09-24 09:30:35 result = dt + timedelta(hours=4) print(result) # 👉️ 2023-09-24 13:30:35

use datetime class to create datetime object

We passed values for the year , month , day , hour , minute and seconds arguments.

# Adding hours to the current time

If you need to add hours to the current time, use the datetime.today() method to get a datetime object that stores the current time.

Copied!
from datetime import datetime, timedelta # ✅ add hours to current time now = datetime.today() print(now) # 👉️ 2023-02-19 05:40:02.239652 result = now + timedelta(hours=5) print(result) # 👉️ 2023-02-19 10:40:02.239652

add hours to current time

The datetime.today() method returns the current local datetime.

We need to use a datetime object because it automatically rolls over the days, months and years if necessary.

This wouldn’t be possible if we only had the time component. For example, 11:59:30PM + 2 hours would raise an exception.

# Only extracting the time component after adding hours

If you only need to extract the time after the operation, call the time() method on the datetime object.

Copied!
from datetime import datetime, timedelta now = datetime.now() print(now) # 👉️ 2023-02-19 05:41:07.814924 result = now + timedelta(hours=5) print(result) # 👉️ 2023-02-19 10:41:07.814924 # ✅ only get updated time print(result.time()) # 👉️ 10:41:07.814924

only extract time component after adding hours

The datetime.time method returns a time object with the same hour, minute, second and millisecond.

# Formatting the time as HH:MM:SS after adding hours

If you need to get the time formatted as HH:MM:SS , use a formatted string literal.

Copied!
from datetime import datetime, timedelta now = datetime.now() print(now) # 👉️ 2023-02-19 05:41:40.114944 result = now + timedelta(hours=3) print(result) # 👉️ 2023-02-19 08:41:40.114944 print(result.time()) # 👉️ 08:41:40.114944 # 👇️ format as HH:MM:SS print(f'result:%H:%M:%S>') # 👉️ 08:41:40

Formatted string literals (f-strings) let us include expressions inside of a string by prefixing the string with f .

Make sure to wrap expressions in curly braces — .

Formatted string literals also enable us to use the format specification mini-language in expression blocks.

# Adding hours to a time using datetime.combine()

If you only have the time component, use the datetime.combine method to combine the time with the current (or some other) date and get a datetime object.

Copied!
from datetime import datetime, date, timedelta, time t = time(6, 25) print(t) # 👉️ 06:25:00 result = datetime.combine(date.today(), t) + timedelta(hours=6) print(result) # 👉️ 2023-02-19 12:25:00 only_t = result.time() print(only_t) # 👉️ 12:25:00

The datetime.combine method takes a date and time as arguments and returns a new datetime object by combining them.

Once we get a datetime object, we can use the timedelta class to add hours to it.

# Additional Resources

You can learn more about the related topics by checking out the following tutorials:

I wrote a book in which I share everything I know about how to become a better, more efficient programmer.

Источник

Оцените статью