Was Sie hier verpasst haben, sind Zeitzonen.
Vermutlich haben Sie fünf Stunden vor UTC, also sind 2013-09-01T11: 00: 00 local und 2013-09-01T06: 00: 00Z dieselbe Zeit.
Sie müssen den Anfang der datetime
Dokumente lesen , in denen Zeitzonen sowie "naive" und "bewusste" Objekte erläutert werden.
Wenn Ihre ursprüngliche naive Datumszeit UTC war, können Sie sie utcfromtimestamp
anstelle von verwenden fromtimestamp
.
Wenn andererseits Ihre ursprüngliche naive Datumszeit lokal war, hätten Sie keinen UTC-Zeitstempel davon subtrahieren sollen. Verwenden Sie datetime.fromtimestamp(0)
stattdessen.
Wenn Sie ein bewusstes Datum / Uhrzeit-Objekt hatten, müssen Sie entweder eine lokale (bewusste) Epoche auf beiden Seiten verwenden oder explizit in und von UTC konvertieren.
Wenn Sie Python 3.3 oder höher haben oder auf dieses aktualisieren können, können Sie all diese Probleme vermeiden, indem Sie einfach die timestamp
Methode verwenden, anstatt herauszufinden, wie Sie es selbst tun können. Und selbst wenn Sie dies nicht tun, sollten Sie den Quellcode ausleihen .
(Und wenn Sie auf Python 3.4 warten können, sieht es so aus, als würde PEP 341 es wahrscheinlich in die endgültige Version schaffen, was bedeutet, dass all die Dinge, über die JF Sebastian und ich in den Kommentaren gesprochen haben, nur mit der stdlib und möglich sein sollten unter Unix und Windows gleich funktionieren.)