ホームページ >バックエンド開発 >Python チュートリアル >Python で 2 つの日時の間で 24 時間が経過したかどうかを正確に判断するにはどうすればよいですか?

Python で 2 つの日時の間で 24 時間が経過したかどうかを正確に判断するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-03 02:35:14450ブラウズ

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

Python を使用した日時間で 24 時間が経過したかどうかの確認

Python では、日時を使用して 2 つの日時間の時差を簡単に確認できます。モジュール。これは、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 の間、指定された datetime オブジェクト。 24 時間が経過すると、「hello」が出力されます。それ以外の場合は、「何もしない」と表示されます。

ただし、この方法では 24 時間の時差を正確に決定することはできません。より正確な解決策は次のとおりです。

UTC 時刻

last_updated が UTC 時刻を表す単純な datetime オブジェクト (タイムゾーン情報なし) の場合:

from datetime import datetime, timedelta

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

現地時間

の場合last_updated は、現地時間を表す単純な datetime オブジェクト (タイムゾーン情報なし) です。

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 で 2 つの日時の間で 24 時間が経過したかどうかを正確に判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。