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

เหตุใดฉันจึงได้รับประทับเวลาที่แตกต่างกันใน python บนเครื่องที่ต่างกัน


การประทับเวลาเป็นค่าออฟเซ็ตระหว่างจุดในเส้นเวลากับยุค ซึ่งไม่เกี่ยวข้องกับเขตเวลา เมื่อแปลงเป็นสตริงที่มนุษย์อ่านได้ เช่น '%Y-%m-%d %H:%M:%S' ซึ่งไม่มีข้อมูลเขตเวลา python จะถือว่าคุณต้องการใช้การตั้งค่าเขตเวลาท้องถิ่น

datetime.timestamp() บนอ็อบเจ็กต์ datetime ไร้เดียงสาเรียก mktime() ภายใน กล่าวคือ อินพุตจะถูกตีความเป็นเวลาท้องถิ่น คำจำกัดความของเวลาท้องถิ่นอาจแตกต่างกันในแต่ละระบบ

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

บน Unix เมื่อเราเรียก timestamp() ล่ามจะใช้ฐานข้อมูล tz ที่มีอยู่ในระบบ UNIX เพื่อรับข้อมูลเขตเวลา แม้ว่าจะไม่มีในหน้าต่าง