2012-12-26 12 views
14

Jak zastosować przesunięcie w bieżącym czasie w pythonie?przesunięcie czasu pythona

Innymi słowy, w stanie uzyskać aktualny czas godzin bez X i/lub minus m minut i/lub minus s secondes i/lub minus milisekund ms

np

curent time = 18:26:00.000 

offset = 01:10:00.000 

=>resulting time = 17:16:00.000 

Odpowiedz

28

użytku a datetime.datetime(), a następnie dodaj lub odejmij 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() arytmetyka nie jest obsługiwany przez datetime.time() obiektów; jeśli trzeba użyć przesunięcia z istniejącego datetime.time() obiektu, wystarczy użyć datetime.datetime.combine() tworząc instancję datetime.datetime(), wykonać obliczenia i „wyciąg” po raz kolejny z metodą .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

hum ok starałem z obiekt czasu, wydaje się, że datetime jest lepsze dla tego, co chcę dzięki – Guillaume07