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