python - 在 python 中使用 IF 语句的时间差

标签 python

我正在尝试在 Python 中比较两次,如果 last_update 比 time_now 提前 1 小时以上运行函数

到目前为止我有

last_update = '01:00:00'
time_now = strftime("%H:%M:%S", gmtime())

time_now= str(time_now)


FMT = '%H:%M:%S'
tdiff = datetime.strptime(time_now, FMT) - datetime.strptime(time_update, FMT)

正确输出时间差。但是我看不到如何在逻辑语句中使用它,例如

if tdiff > 01:00:00 
   ..do stuff..

任何想法..?

最佳答案

当只解析一个时间(没有日期)时,您需要将结果对象与今天的日期重新组合:

from datetime import datetime, date, timedelta

dt_update = datetime.combine(date.today(), datetime.strptime(last_update, '%H:%M:%S').time())

如果您不这样做,您最终会在对象上得到日期 1900-01-01,但重新组合它可以更轻松地将时间与当前时间进行比较。只需使用 datetime.now() 将其与以下内容进行比较:

tdiff = datetime.now() - dt_update

现在您有一个 timedelta() 对象。将它与另一个 timedelta 进行比较:

if tdiff > timedelta(hours=1):

关于python - 在 python 中使用 IF 语句的时间差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16325553/

相关文章:

python - cross_validation模块是否从sklearn中删除了?如果是,从哪个版本开始?

python - 如何在无法安装所需软件包的机器上运行 python 脚本?

python - 在 Python 中加密数据 -

Python - 插入 ms Access 表

python - 将脚本转换为不同版本的 Python

python - 从哪里获得 RAND_egd?

python - Opencv 检测表格上的所有通用对象形状(鸟瞰图)

python连接mysql

python - 如何在 ffmpeg-python 包中使用 libx265 (H.265)?

python - pandas.Series.apply 中的访问索引