2012-12-26 15 views
14

Come posso applicare un offset sull'ora corrente in python?offset tempo Python

In altri termini, essere in grado di ottenere il tempo corrente ore meno X e/o meno m minuti e/o secondes e/o meno s meno millisecondi ms

per esempio

curent time = 18:26:00.000 

offset = 01:10:00.000 

=>resulting time = 17:16:00.000 

risposta

28

Usa a datetime.datetime(), quindi aggiungere o sottrarre 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() aritmetica non è supportato per datetime.time() oggetti; se è necessario utilizzare offset da un datetime.time() oggetto esistente, basta usare datetime.datetime.combine() per formare un esempio datetime.datetime(), fare i vostri calcoli, e 'estratto' l'ora di nuovo con il metodo .time():

>>> 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) 
+0

ronzio ok stavo provando con un Oggetto temporale, sembra datetime è meglio per quello che voglio grazie – Guillaume07