python time offset

Question:

How can I apply an offset on the current time in python?

In other terms, be able to get the current time minus x hours and/or minus m minutes and/or minus s secondes and/or minus ms milliseconds

for instance

curent time = 18:26:00.000

offset = 01:10:00.000

=>resulting time = 17:16:00.000
Asked By: Guillaume Paris

||

Answers:

Use a datetime.datetime(), then add or subtract datetime.timedelta() instances.

>>> import datetime
>>> t = datetime.datetime.now()
>>> t - datetime.timedelta(hours=1, minutes=10)
datetime.datetime(2012, 12, 26, 17, 18, 52, 167840)

timedelta() arithmetic is not supported for datetime.time() objects; if you need to use offsets from an existing datetime.time() object, just use datetime.datetime.combine() to form a datetime.datetime() instance, do your calculations, and ‘extract’ the time again with the .time() method:

>>> t = datetime.time(1, 2)
>>> dt = datetime.datetime.combine(datetime.date.today(), t)
>>> dt
datetime.datetime(2012, 12, 26, 1, 2)
>>> dt -= datetime.timedelta(hours=5)
>>> dt.time()
datetime.time(20, 2)
Answered By: Martijn Pieters
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.