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

จะเปรียบเทียบ calendar.timegm () กับ time.mktime () ใน Python ได้อย่างไร


หากไม่ระบุไว้อย่างชัดแจ้ง ฟังก์ชัน/โมดูลของวันที่และเวลาใน 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