datetime.datetime.fromtimestamp() benar, kecuali Anda mungkin memiliki stempel waktu dalam milidetik (seperti dalam JavaScript), tetapi fromtimestamp() mengharapkan cap waktu Unix, dalam hitungan detik.
Lakukan seperti itu:
>>> import datetime
>>> your_timestamp = 1331856000000
>>> date = datetime.datetime.fromtimestamp(your_timestamp / 1e3)
dan hasilnya adalah:
>>> date
datetime.datetime(2012, 3, 16, 1, 0)
Apakah itu menjawab pertanyaan Anda?
EDIT : JF Sebastian dengan benar menyarankan untuk menggunakan pembagian sejati dengan 1e3(float 1000). Perbedaannya signifikan, jika Anda ingin mendapatkan hasil yang tepat, maka saya mengubah jawaban saya. Perbedaan hasil dari perilaku default Python 2.x, yang selalu kembali intketika membagi (menggunakan /operator) intdengan int(ini disebut pembagian lantai ). Dengan mengganti pembagi 1000(menjadi int) dengan 1e3pembagi (menjadi representasi 1000sebagai pelampung) atau dengan float(1000)(atau 1000.dll.), Pembagian menjadi pembagian yang benar . Python 2.x kembali floatsaat membaginya intdengan float, floatoleh int,float olehfloatdll. Dan ketika ada beberapa bagian fraksional di stempel waktu yang dilewati ke fromtimestamp()metode, hasil metode ini juga berisi informasi tentang bagian fraksional itu (seperti jumlah mikrodetik).
/ 1e3