Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ทำไม timestamp ใน Python จึงต่างกันบนเครื่องต่างๆ

Timestamp คือค่า offset ระหว่างจุดบนเส้นเวลากับ epoch ไม่เกี่ยวกับเขตเวลา แต่เมื่อแปลงเป็นสตริงอ่านได้ เช่น %Y-%m-%d %H:%M:%S ที่ไม่มีข้อมูลเขตเวลา Python จะสมมติว่าใช้การตั้งค่าเขตเวลาท้องถิ่น

datetime.timestamp() บน naive datetime เรียก mktime() ภายใน คือตีความ input เป็นเวลาท้องถิ่น การกำหนดเวลาท้องถิ่นอาจต่างกันระหว่างระบบ

C mktime() อาจคืนค่าผิดหากเขตเวลาท้องถิ่นเคยมี UTC offset ต่างกันในอดีตและไม่ได้ใช้ฐานข้อมูลเขตเวลาทางประวัติศาสตร์

บน Unix ตัวแปลใช้ tz database ที่มีในระบบเพื่อดึงข้อมูลเขตเวลา แต่ Windows ไม่มี