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