如何从日期时间中减去秒并进行比较?

Posted

技术标签:

【中文标题】如何从日期时间中减去秒并进行比较?【英文标题】:How to subtract seconds from a datetime and compare it? 【发布时间】:2020-11-06 14:43:06 【问题描述】:

所以我确实在这里看到了所有关于从datetimes 中减去秒和总体上减去datetimes 的主题,但我仍然卡住并试图解决很长时间。

我写了以下代码。

这部分代码在ttl参数中向我的txt文件发送时间戳

lines.append(""+dataFather.decode()[:-1]+','+datetime.datetime.now().strftime("%m/%d/%y %H:%M:%S"))

它以字符串的形式发送。

然后,我只是将其保留在时间变量内。

    infoList = line.split(",")
.....
            time = infoList[3]

然后,在另一个代码运行中,我只想检查秒之间的减法是大于还是小于 60。

timeDif = datetime.now()-datetime.strptime(time, "%m/%d/%y %H:%M:%S")
if 60 > timeDif.seconds():
     ......

但是我得到了以下错误,它甚至没有到达“if”语句。

Traceback (most recent call last):
  File "server_copy.py", line 36, in <module>
    timeDif = datetime.now()- datetime.datetime.strptime(time, "%m/%d/%y %H:%M:%S")
AttributeError: type object 'datetime.datetime' has no attribute 'datetime'

这很奇怪,因为我确实使用过:

from datetime import datetime, timedelta

这里的错误在哪里?

【问题讨论】:

【参考方案1】:

在您的示例中显示

timeDif = datetime.now()-datetime.strptime(time, "%m/%d/%y %H:%M:%S")

但在错误中很明显

timeDif = datetime.now()- datetime.datetime.strptime(time, "%m/%d/%y %H:%M:%S")

所以您的示例和错误消息使用不同的代码。向我们展示你运行它的整个文件。

还有为什么你以前使用datetime.datetime

lines.append(""+dataFather.decode()[:-1]+','+datetime.datetime.now().strftime("%m/%d/%y %H:%M:%S"))

尽量保持一致,它会自行解决。

【讨论】:

谢谢。我也注意到了这一点,并阅读了有关导入日期时间的信息并解决了这些问题。但是现在我有一些其他错误,因为我试图减去以其他方式而不是“datetime.strptime”的“datetime.now()”,然后它给了我一个错误。【参考方案2】:

不要使用timeDif.seconds()秒不是方法

尝试使用timeDif.seconds,它会正常工作!


from datetime import datetime, timedelta
from time import sleep

before = datetime.now()
sleep(5) # wait for 5 se
now = datetime.now()

timeDif = now-before

print(str(timeDif.seconds))

【讨论】:

正如我所说,它甚至没有达到“if”语句。

以上是关于如何从日期时间中减去秒并进行比较?的主要内容,如果未能解决你的问题,请参考以下文章

如何从另一个日期中减去一个日期? [复制]

如何从 Pandas 数据框列中的日期时间减去 3 小时?

如何从普通日期中减去天数?

从日期时间减去 1 年

如何从Javascript日期中减去php日期

如何使用 Java 日历从日期中减去 X 天?