一、mktime()函數介紹
Python datetime模塊中的mktime()函數可以將一個時間元組轉化為時間戳。
時間元組是一個由9個整數組成的序列,其中每個整數表示時間的一部分,從年到日,以及0到6的一個整數表示周日到周六的一天。
時間戳是自1970年1月1日00:00:00 UTC以來的秒數,如果time_tuple為None,則返回當前時間的時間戳。
import datetime
t = (2021, 12, 1, 12, 30, 45, 0, 0, 0)
timestamp = datetime.datetime(*t).timestamp()
print("timestamp:", timestamp)
以上代碼的輸出結果: timestamp: 1638364245.0
二、mktime()函數的應用場景
將時間元組轉化為時間戳可以方便地進行時間的比較、計算和操作。例如:
import datetime
t1 = (2021, 12, 1, 12, 30, 45, 0, 0, 0)
t2 = (2021, 12, 1, 14, 20, 15, 0, 0, 0)
dt1 = datetime.datetime(*t1)
dt2 = datetime.datetime(*t2)
if dt1.timestamp() < dt2.timestamp():
print(dt1, "is before", dt2)
else:
print(dt1, "is after", dt2)
以上代碼的輸出結果: (2021, 12, 1, 12, 30, 45) is before (2021, 12, 1, 14, 20, 15)
三、mktime()函數的注意事項
需要注意的是,mktime()默認使用本地時區,如果想以UTC時間為準,可以使用utctimetuple()函數獲取UTC時間元組。
此外,mktime()不支持日期在1900年1月1日之前,也不支持日期在2038年1月19日之後。
import datetime
import time
t = (2022, 1, 1, 0, 0, 0, 0, 0, 0)
if time.mktime(t) > 0:
dt = datetime.datetime(*t)
print("datetime:", dt)
else:
print("Invalid date")
以上代碼的輸出結果: datetime: 2022-01-01 00:00:00
四、總結
mktime()函數是Python datetime模塊中常用的函數之一,可以方便地將時間元組轉化為時間戳,可以應用於多種場景中,需要注意時區和日期的範圍。
原創文章,作者:OWIM,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/146012.html
微信掃一掃
支付寶掃一掃