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

2 つの Python `datetime` オブジェクト間で 24 時間が経過したかどうかを効率的に判断するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-06 17:20:141029ブラウズ

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

24 時間が経過したかどうかを判断するための時差の計算

このタスクには、保存されている 2 つの日付または時刻の間で 24 時間が経過したかどうかを判断することが含まれます。日時オブジェクト。 Python での解決策は次のとおりです。

単純な Datetime オブジェクトの使用

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

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 時間を使用すると、タイムゾーンの問題が最小限に抑えられるため、一般的に推奨されます。

以上が2 つの Python `datetime` オブジェクト間で 24 時間が経過したかどうかを効率的に判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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