What Is TimeDelta?

timedelta objects represent a duration of time, in days, seconds and/or microseconds.

>>> datetime.timedelta(hours=5)
datetime.timedelta(0, 18000) 
>>> datetime.timedelta(days=3)
datetime.timedelta(3)

The result in the first example is 0 days and 1800 seconds.

 

Add & Subtract Time

To change a datetime by the duration of a timedelta, use math, like + or -.

>>> import datetime
>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2017, 4, 17, 16, 3, 47, 775270)
 Adding
>>> now + datetime.timedelta(days=3)
datetime.datetime(2017, 4, 20, 16, 3, 47, 775270)
Subtracting
>>> now + datetime.timedelta(days= -5)
datetime.datetime(2017, 4, 12, 16, 3, 47, 775270)
>>> now - datetime.timedelta(days= 5)
datetime.datetime(2017, 4, 12, 16, 3, 47, 775270)

 


Real-Life Examples

A working day calculation in seconds
>>> hour = datetime.timedelta(hours=1)
>>> hour
datetime.timedelta(0, 3600)
>>> workday = hour * 9
>>> workday
datetime.timedelta(0, 32400)
 What time will I be off tomorrow?
>>> # What time does work start tomorrow?
>>> tomorrow = datetime.datetime.now().replace(hour=9, minute=0) + datetime.timedelta(days=1)
>>> tomorrow
datetime.datetime(2017, 4, 18, 9, 0, 7, 240543)

>>> # What time does work end tomorrow?
>>> tomorrow + workday
datetime.datetime(2017, 4, 18, 18, 0, 7, 240543)
 Appointment Timing Details
>>> # Duration of the appointment
>>> appointment = datetime.timedelta(minutes=45)

>>> # When it starts and when it ends
>>> start = datetime.datetime(2014,11,1,12,45)
>>> end = start + appointment
>>> end
datetime.datetime(2014, 11, 1, 13, 30)
>>> # Ends at 1:30 pm