Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python减去时间并运行if循环_Python_Linux_Debian - Fatal编程技术网

python减去时间并运行if循环

python减去时间并运行if循环,python,linux,debian,Python,Linux,Debian,我想比较两次,如果新时间超过2min,那么if语句将打印输出,我可以得到datetime.datetime.now的输出,但是如何检查旧时间是否小于2min #!/usr/bin/env python import datetime from time import sleep now = datetime.datetime.now() sleep(2) late = datetime.datetime.now() constant = 2 diff = late-now if diff

我想比较两次,如果新时间超过2min,那么if语句将打印输出,我可以得到datetime.datetime.now的输出,但是如何检查旧时间是否小于2min

#!/usr/bin/env python


import datetime
from time import sleep
now = datetime.datetime.now()

sleep(2)

late = datetime.datetime.now()
constant = 2
diff = late-now
if diff <= constant:
    print "True time is less than 2min"
else:
    print "Time exceeds 2 mins"
它给了我这个错误

ValueError: unconverted data remains: .838638
减去两个datetime实例将返回具有total_seconds方法的timedelta:

减去两个datetime实例将返回具有total_seconds方法的timedelta:


这只是更新的一个答案,因为sje397的答案是完美的

使用如下格式字符串匹配整个时间字符串:

nnow = datetime.strptime(now, '%Y-%m-%d %H:%M:%S.%f')

%f与点后的微秒相匹配。这是自Python 2.6以来的新版本。

这只是对更新的回答,因为来自sje397的回答是完美的

使用如下格式字符串匹配整个时间字符串:

nnow = datetime.strptime(now, '%Y-%m-%d %H:%M:%S.%f')
%f与点后的微秒相匹配。这是自Python 2.6以来的新功能。

您可以自己比较datetime对象:

from datetime import datetime, timedelta

ts = datetime.strptime("2011-12-16 16:14:50.838638Z", '%Y-%m-%d %H:%M:%S.%fZ')
ts += timedelta(minutes=2) # add 2 minutes

if datetime.utcnow() < ts:
   print("time is less")
else:
   print("time is more or equal")
您可以单独比较datetime对象:

from datetime import datetime, timedelta

ts = datetime.strptime("2011-12-16 16:14:50.838638Z", '%Y-%m-%d %H:%M:%S.%fZ')
ts += timedelta(minutes=2) # add 2 minutes

if datetime.utcnow() < ts:
   print("time is less")
else:
   print("time is more or equal")

diff是datetime.timedelta对象,它有.totalseconds方法或.seconds属性diff是datetime.timedelta对象,它有.totalseconds方法或.seconds属性不担心@Kristigitx…我只是最近在工作中经常使用它:不担心@Kristigitx…我只是最近在工作中经常使用它: