Yang Anda lewatkan di sini adalah zona waktu.
Agaknya Anda sudah lima jam libur UTC, jadi 2013-09-01T11: 00: 00 lokal dan 2013-09-01T06: 00: 00Z adalah waktu yang sama.
Anda perlu membaca bagian atas datetime
dokumen, yang menjelaskan tentang zona waktu dan objek "naif" dan "sadar".
Jika waktu naif awal Anda adalah UTC, cara untuk memulihkannya adalah dengan menggunakannya utcfromtimestamp
sebagai ganti fromtimestamp
.
Di sisi lain, jika dat naif awal Anda adalah lokal, Anda seharusnya tidak mengurangi stempel waktu UTC darinya; gunakan datetime.fromtimestamp(0)
saja.
Atau, jika Anda memiliki objek data sadar, Anda harus menggunakan zaman lokal (sadar) di kedua sisi, atau secara eksplisit mengkonversi ke dan dari UTC.
Jika Anda memiliki, atau dapat meningkatkan ke, Python 3.3 atau yang lebih baru, Anda dapat menghindari semua masalah ini dengan hanya menggunakan timestamp
metode alih-alih mencoba mencari cara untuk melakukannya sendiri. Dan bahkan jika tidak, Anda mungkin ingin mempertimbangkan untuk meminjam kode sumbernya .
(Dan jika Anda bisa menunggu Python 3.4, sepertinya PEP 341 kemungkinan akan membuatnya menjadi rilis final, yang berarti semua hal yang saya dan JF bicarakan dalam komentar harus dilakukan hanya dengan stdlib, dan bekerja dengan cara yang sama pada Unix dan Windows.)