หากไม่ระบุไว้อย่างชัดแจ้ง ฟังก์ชัน/โมดูลของวันที่และเวลาใน Python จะถือว่าทุกอย่างอยู่ในเขตเวลาท้องถิ่น
time.mktime() ถือว่า tuple ที่ส่งผ่านเป็นเวลาท้องถิ่น calendar.timegm() จะถือว่าอยู่ใน GMT/UTC
ขึ้นอยู่กับการตีความ ทูเพิลแสดงแทนเวลาที่แตกต่างกัน ดังนั้นฟังก์ชันจะคืนค่าที่แตกต่างกัน (วินาทีเนื่องจากยุคนั้นอิงตาม UTC)
ความแตกต่างระหว่างค่าควรเท่ากับการชดเชยเขตเวลาของเขตเวลาท้องถิ่นของคุณ
ตัวอย่าง
import calendar import time from datetime import datetime dt = datetime(2017, 12, 31) print(time.mktime(dt.timetuple())) print(calendar.timegm(dt.timetuple()))
ผลลัพธ์
สิ่งนี้จะให้ผลลัพธ์ -
1514658600.0 1514678400