一、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