381 Stimmen

Konvertierung von datetime.date in UTC-Zeitstempel in Python

Ich befasse mich mit Daten in Python und ich brauche, um sie in UTC-Zeitstempel zu konvertieren, verwendet werden in Javascript zu verwenden. Der folgende Code funktioniert nicht:

>>> d = datetime.date(2011,01,01)
>>> datetime.datetime.utcfromtimestamp(time.mktime(d.timetuple()))
datetime.datetime(2010, 12, 31, 23, 0)

Auch die Konvertierung des Datumsobjekts in datetime hilft nicht. Ich habe das Beispiel unter diesem Link ausprobiert Link aus, sondern:

from pytz import utc, timezone
from datetime import datetime
from time import mktime
input_date = datetime(year=2011, month=1, day=15)

und jetzt entweder:

mktime(utc.localize(input_date).utctimetuple())

o

mktime(timezone('US/Eastern').localize(input_date).utctimetuple())

funktioniert.

Also allgemeine Frage: wie kann ich ein Datum in Sekunden seit der Epoche nach UTC umrechnen lassen?

0voto

alex Punkte 399

Ich bin beeindruckt von der ausführlichen Diskussion.

meine 2 Cents:

from datetime import datetime
import time

der Zeitstempel in utc ist:

timestamp = \
    (datetime.utcnow() - datetime(1970,1,1)).total_seconds()

oder,

timestamp = time.time()

if now ergibt sich aus datetime.now(), in der gleichen DST

utcoffset = (datetime.now() - datetime.utcnow()).total_seconds()
timestamp = \
    (now - datetime(1970,1,1)).total_seconds() - utcoffset

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X