首頁 >後端開發 >Python教學 >如何有效地確定兩個 Python'datetime”物件之間是否已經過了 24 小時?

如何有效地確定兩個 Python'datetime”物件之間是否已經過了 24 小時?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-06 17:20:141032瀏覽

How Can I Efficiently Determine if 24 Hours Have Passed Between Two Python `datetime` Objects?

計算時差以確定是否已過去24 小時

該任務涉及確定儲存在中的兩個日期或時間之間是否已過去24 小時日期時間對象。這是Python中的解決方案:

使用樸素日期時間物件

如果日期時間物件表示樸素時間(沒有時區資訊):

from datetime import datetime, timedelta

if (datetime.utcnow() - last_updated) > timedelta(hours=24):
    # More than 24 hours passed since last_updated

使用當地時間對象

如果last_updated代表本地時間:

import time

DAY = 86400
now = time.time()
then = time.mktime(last_updated.timetuple())
if (now - then) > DAY:
    # More than 24 hours passed since last_updated

使用tzlocal模塊(推薦)

from datetime import datetime, timedelta
from tzlocal import get_localzone

tz = get_localzone()
then = tz.normalize(tz.localize(last_updated))
now = datetime.now(tz)
if (now - then) > timedelta(hours=24):
    # More than 24 hours passed since last_updated

此方法處理案例時區可能已更改或夏令時(DST)偏移已更改的地方

註釋:

  • 如果last_updated是一個感知日期時間物件(帶有時區資訊),則在比較之前減去UTC偏移量。
  • 使用 UTC 時間可以最大限度地減少時區問題,並且通常建議使用。

以上是如何有效地確定兩個 Python'datetime”物件之間是否已經過了 24 小時?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn