datetime.datetime.fromtimestamp()ถูกต้องยกเว้นคุณอาจมีการประทับเวลาในหน่วยมิลลิวินาที (เช่นใน JavaScript) แต่fromtimestamp()คาดว่า Unix Timestamp จะมีหน่วยเป็นวินาที
ทำเช่นนั้น:
>>> import datetime
>>> your_timestamp = 1331856000000
>>> date = datetime.datetime.fromtimestamp(your_timestamp / 1e3)
และผลลัพธ์คือ:
>>> date
datetime.datetime(2012, 3, 16, 1, 0)
มันตอบคำถามของคุณหรือไม่
แก้ไข : JF Sebastian แนะนำให้ใช้การหารที่แท้จริงด้วย1e3(ลอย1000) ความแตกต่างนั้นสำคัญถ้าคุณต้องการได้ผลลัพธ์ที่แม่นยำดังนั้นฉันจึงเปลี่ยนคำตอบ ความแตกต่างเป็นผลมาจากพฤติกรรมเริ่มต้นของ Python 2.x ซึ่งจะส่งกลับเสมอintเมื่อทำการหาร (โดยใช้/โอเปอเรเตอร์) intโดยint(ซึ่งเรียกว่าการหารพื้น ) โดยการแทนที่ตัวหาร1000(เป็นint) ที่มี1e3ตัวหาร (เป็นตัวแทนของ1000เป็น float) หรือfloat(1000)(หรือ1000.อื่น ๆ ) ส่วนที่จะกลายเป็นส่วนจริง Python 2.x ส่งกลับfloatเมื่อหารintด้วยfloat, floatโดยint,floatด้วยfloatเป็นต้นและเมื่อมีเศษส่วนบางส่วนในการประทับเวลาที่ส่งผ่านไปยังfromtimestamp()วิธีการผลของวิธีการนี้ยังมีข้อมูลเกี่ยวกับส่วนที่เศษส่วนนั้น (ตามจำนวนไมโครวินาที)
/ 1e3