ホームページ >バックエンド開発 >Python チュートリアル >Python で 2 つの日時の間で 24 時間が経過したかどうかを正確に判断するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。