datetime
ułatwia między fromtimestamp
, timedelta
i timestamp
:
>>> import datetime
>>> orig = datetime.datetime.fromtimestamp(1425917335)
>>> new = orig + datetime.timedelta(days=90)
>>> print(new.timestamp())
1433693335.0
W Pythonie 3.2 i wcześniejszych datetime
obiekty nie mają metodę .timestamp()
, więc trzeba zmienić ostatni wiersz do mniej wydajny dwa -stage konwersja:
>>> import time
>>> print(time.mktime(new.timetuple()))
konwersja dwustopniowy trwa ~ 10x dłużej niż .timestamp()
na moim komputerze, przy ~ 2,5 mikrosekund, w porównaniu z 270 ~ ns dla .timestamp()
; wprawdzie nadal trywialne, jeśli nie robisz tego zbyt wiele, ale jeśli musisz zrobić to dużo, rozważ to kolejny argument za używaniem nowoczesnego Pythona. :-)
mój python 2.6 nie ma funkcji ">>> print (new.timestamp())' get błąd 'AttributeError: 'datetime.datetime' obiekt nie ma atrybutu 'timestamp'' – Satish
@ Preat: 3.3, możesz łączyć razem '.timestamp()' używając 'time.mktime (x.timetuple())'. To brzydsze (i musisz "importować czas"), ale równoważne. Zauważ, że możesz, w zależności od źródła znacznika czasu i tego, czy używasz czasu UTC lub czasu lokalnego, chcesz użyć 'utcfromtimestamp' i' utctimetuple' zamiast podanych funkcji innych niż UTC. – ShadowRanger
Notatka głosowa: 2.6? Naprawdę? 2.7 jest już od ponad pięciu lat! – ShadowRanger