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

วิธีเปรียบเทียบ calendar.timegm() กับ time.mktime() ใน Python

ฟังก์ชันวันที่/เวลาใน Python สมมติว่าทุกอย่างเป็นเวลาท้องถิ่น (Local time) หากไม่ระบุชัดเจน

  • time.mktime() สมมติ tuple ที่ส่งเข้าเป็นเวลาท้องถิ่น
  • calendar.timegm() สมมติเป็น GMT/UTC

ขึ้นอยู่กับการตีความ tuple แทนเวลาที่ต่างกัน จึงคืนค่าต่างกัน (วินาทีนับจาก epoch เป็น UTC based) ความต่างของค่าทั้งสองควรเท่ากับ UTC offset ของเขตเวลาท้องถิ่น

ตัวอย่าง

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