Computer >> Máy Tính >  >> Lập trình >> Python

Làm thế nào để so sánh lịch.timegm () với time.mktime () trong Python?

Nếu không được nêu rõ ràng, các hàm / mô-đun ngày giờ trong Python sẽ giả định mọi thứ theo múi giờ Địa phương.

time.mktime () giả định rằng bộ giá trị được truyền là theo giờ địa phương, calendar.timegm () giả định rằng nó theo giờ GMT / UTC.

Tùy thuộc vào cách diễn giải mà bộ tuple đại diện cho một thời gian khác nhau, do đó, các hàm trả về các giá trị khác nhau (giây kể từ khi kỷ nguyên dựa trên UTC).

Chênh lệch giữa các giá trị phải bằng chênh lệch múi giờ của múi giờ địa phương của bạn.

ví dụ

import calendar
import time
from datetime import datetime
dt = datetime(2017, 12, 31)
print(time.mktime(dt.timetuple()))
print(calendar.timegm(dt.timetuple()))

Đầu ra

Điều này sẽ cung cấp đầu ra -

1514658600.0
1514678400