Python - calendar.timegm () und time.mktime ()
Ich scheine zu haben eine harte Zeit, meinen Kopf um dieses.
Was ist der Unterschied zwischen calendar.timegm()
und time.mktime()
?
Sagen, dass ich eine datetime.datetime
ohne tzinfo befestigt, sollten nicht zwei geben, die dieselbe Ausgabe? Nicht Sie beide geben die Anzahl der Sekunden zwischen der Zeit und dem Datum als parameter übergeben? Und seit dem Zeitpunkt vergangen, hat keine tzinfo, ist nicht, die Anzahl der Sekunden, die der gleichen?
>>> import calendar
>>> import time
>>> import datetime
>>> d = datetime.datetime(2010, 10, 10)
>>> calendar.timegm(d.timetuple())
1286668800
>>> time.mktime(d.timetuple())
1286640000.0
>>>
InformationsquelleAutor der Frage ibz | 2010-06-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zeit.mktime()
davon ausgegangen, dass die übergebene Tupel wird in die lokale Zeit, dieKalender.timegm()
nimmt an, dass es in GMT/UTC. Je nach interpretation der Tupel repräsentiert eine andere Zeit, so dass die Funktionen unterschiedliche Werte (Sekunden seit der Epoche sind UTC-basiert).Die Differenz zwischen den Werten gleich sein sollte, um die Zeitzonen-offset der lokalen Zeitzone.
InformationsquelleAutor der Antwort sth
calendar.timegm
wandelt UTC-Zeitstempel,Zeit.mktime
konvertiert von die Zeit, nicht UTC.8 Stunden Unterschied in Ihren Ergebnissen entspricht genau der Zeitzone Ihres Standorts aus.
InformationsquelleAutor der Antwort SilentGhost