如何从日期时间中减去秒并进行比较?
Posted
技术标签:
【中文标题】如何从日期时间中减去秒并进行比较?【英文标题】:How to subtract seconds from a datetime and compare it? 【发布时间】:2020-11-06 14:43:06 【问题描述】:所以我确实在这里看到了所有关于从datetime
s 中减去秒和总体上减去datetime
s 的主题,但我仍然卡住并试图解决很长时间。
我写了以下代码。
这部分代码在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”语句。以上是关于如何从日期时间中减去秒并进行比较?的主要内容,如果未能解决你的问题,请参考以下文章