datetime
macht es einfach, zwischen fromtimestamp
, timedelta
und timestamp
:
>>> import datetime
>>> orig = datetime.datetime.fromtimestamp(1425917335)
>>> new = orig + datetime.timedelta(days=90)
>>> print(new.timestamp())
1433693335.0
auf Python 3.2 und früher datetime
Objekte haben keine .timestamp()
Methode, so dass Sie die letzte Zeile in die weniger effizient zwei ändern müssen -Stufe Umwandlung:
>>> import time
>>> print(time.mktime(new.timetuple()))
Die zweistufige Umwandlung dauert ~ 10x länger als .timestamp()
auf meinem Rechner unter ~ 2,5 & mgr; s, gegen ~ 270 ns für .timestamp()
; zugegebenermaßen immer noch trivial, wenn Sie nicht viel tun, aber wenn Sie es viel tun müssen, betrachten Sie es als ein weiteres Argument für die Verwendung von modernen Python. :-)
Mein Python 2.6 hat keine '>>> print (new.timestamp())' -Funktion Fehler bekommen 'AttributeError: 'datetime.datetime' Objekt hat kein Attribut 'timestamp'' – Satish
@Satin: Pre-3.3, Sie können '.timestamp()' mit 'time.mktime (x.tupetuple())' zusammensetzen. Es ist hässlicher (und Sie müssen Zeit importieren), aber gleichwertig. Beachten Sie, dass Sie abhängig von der Quelle des Zeitstempels und davon, ob UTC oder lokale Zeit verwendet wird, anstelle der angegebenen Nicht-UTC-Funktionen "utcfromtimestamp" und "utctimetuple" verwenden möchten. – ShadowRanger
Randnotiz: 2.6? "Ja wirklich?" 2.7 ist seit über fünf Jahren draußen! – ShadowRanger