首頁 >後端開發 >Python教學 >如何在Python中準確判斷兩個日期時間之間是否已經過了24小時?

如何在Python中準確判斷兩個日期時間之間是否已經過了24小時?

Susan Sarandon
Susan Sarandon原創
2024-12-03 02:35:14455瀏覽

How Can I Accurately Determine if 24 Hours Have Passed Between Two Datetimes in Python?

使用Python 確定日期時間之間是否已過去24 小時

在Python 中,您可以使用datetime 方便地確定兩個日期時間之間的時間差模組。這在您需要檢查特定時間段(例如 24 小時)是否已過去的場景中特別有用。

考慮以下方法:

def time_diff(last_updated):
    day_period = last_updated.replace(day=last_updated.day + 1,
                                      hour=1,
                                      minute=0,
                                      second=0,
                                      microsecond=0)
    delta_time = day_period - last_updated
    hours = delta_time.seconds // 3600
    # Check if 24 hours have passed
    if hours >= 24:
        print("hello")
    else:
        print("do nothing")

此方法計算時差當前時間和給定日期時間物件的last_updated 之間。如果已經過了24小時,則列印「hello」;否則,它會列印「不執行任何操作。」

但是,該方法在準確確定 24 小時時差方面存在缺陷。以下是更精確的解決方案:

UTC 時間

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

from datetime import datetime, timedelta

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

當地時間

如果last_updated是表示本地時間的樸素日期時間對象(沒有時區資訊):

import time

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

時區和不明確時間

如果last_updated是一個不明確的時間(例如,在DST期間)過渡),可以使用pytz 模組來確保準確性:

from datetime import datetime, timedelta
from tzlocal import get_localzone # pip install tzlocal

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

以上是如何在Python中準確判斷兩個日期時間之間是否已經過了24小時?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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