Frage

Wie kann ich einen Datetime oder Date-Objekt in einen POSIX-Zeitstempel in Python konvertieren? Es gibt Methoden, um ein Datetime-Objekt aus einem Zeitstempel zu schaffen, aber ich scheine nicht offensichtliche Wege zu finden, die entgegengesetzte Richtung um den Vorgang zu tun.

War es hilfreich?

Lösung

import time, datetime

d = datetime.datetime.now()
print time.mktime(d.timetuple())

Andere Tipps

Für UTC Berechnungen calendar.timegm ist die Umkehrung von time.gmtime.

import calendar, datetime
d = datetime.datetime.utcnow()
print calendar.timegm(d.timetuple())

Beachten Sie, dass Python jetzt (3.5.2) einen umfasst gebaut -in Methode für diese in datetime Objekte:

>>> import datetime
>>> now = datetime.datetime.now() 
>>> now.timestamp() # Local time
1509315202.161655
>>> now.replace(tzinfo=datetime.timezone.utc).timestamp() # UTC
1509329602.161655

in Python, time.time () können Sekunden als Gleitkommazahl zurück, die mit den Mikrosekunden eine dezimale Komponente enthält. Um eine Datetime zurück in dieser Darstellung zu konvertieren, müssen Sie die Mikrosekunden Komponente hinzugefügt werden, da die direkten timetuple es nicht enthalten.

import time, datetime

posix_now = time.time()

d = datetime.datetime.fromtimestamp(posix_now)
no_microseconds_time = time.mktime(d.timetuple())
has_microseconds_time = time.mktime(d.timetuple()) + d.microsecond * 0.000001

print posix_now
print no_microseconds_time
print has_microseconds_time
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top