使用 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中文网其他相关文章!