Python时间差计算:计算时间差(how do i calculate time)

关于Python时间差计算的问题,在how do i calculate time中经常遇到, 在我的节目的开始和结束,我有

在我的节目的开始和结束,我有

from time import strftime
print int(strftime("%Y-%m-%d %H:%M:%S")
Y1=int(strftime("%Y"))
m1=int(strftime("%m"))
d1=int(strftime("%d"))
H1=int(strftime("%H"))
M1=int(strftime("%M"))
S1=int(strftime("%S"))
Y2=int(strftime("%Y"))
m2=int(strftime("%m"))
d2=int(strftime("%d"))
H2=int(strftime("%H"))
M2=int(strftime("%M"))
S2=int(strftime("%S"))
print "Difference is:"+str(Y2-Y1)+":"+str(m2-m1)+":"+str(d2-d1)\
          +" "+str(H2-H1)+":"+str(M2-M1)+":"+str(S2-S1)

但是当我试图获得差异时,我得到语法错误....我做错了几件事,但我不知道发生了什么...

基本上,我只想在我的程序开始时将时间存储在一个变量中,然后将第二个时间存储在接近结束的第二个变量中,然后在程序的最后一位,计算差异并显示它。我不是试图计时功能速度。我试图记录用户通过一些菜单进行的时间。最好的方法是什么?

133

datetime模块将为您完成所有工作:

>>> import datetime
>>> a = datetime.datetime.now()
>>> # ...wait a while...
>>> b = datetime.datetime.now()
>>> print(b-a)
0:03:43.984000

如果你不想显示微秒,只需使用(gnibbler 建议):

>>> a = datetime.datetime.now().replace(microsecond=0)
>>> b = datetime.datetime.now().replace(microsecond=0)
>>> print(b-a)
0:03:43
27
from time import time
start_time = time()
...
end_time = time()
seconds_elapsed = end_time - start_time
hours, rest = divmod(seconds_elapsed, 3600)
minutes, seconds = divmod(rest, 60)
12

您无法分别计算差异...7:59 和 8:00 会产生什么差异?尝试

import time
time.time()

这给了你开始后的几秒钟。

然后,您可以通过类似的方式获得中间时间

timestamp1 = time.time()
# Your code here
timestamp2 = time.time()
print "This took %.2f seconds" % (timestamp2 - timestamp1)
9

time.monotonic()time.monotonic_ns()都是正确的。

>>> import time
>>>
>>> time.monotonic()
452782.067158593
>>>
>>> t0 = time.monotonic()
>>> time.sleep(1)
>>> t1 = time.monotonic()
>>> print(t1 - t0)
1.001658110995777

无论使用哪种语言,单调时间都是正确的答案,而实时是错误的答案。不同之处在于,在测量持续时间时,单调时间应该给出一致的答案,而实时则不是,因为可以调整实时时间-实际上需要进行调整-以跟上现实。单调时间通常是计算机的正常运行时间。

因此,time.time()datetime.now()是错误的方法。

Python 还具有time.perf_counter()time.perf_counter_ns(),它们被指定为具有最高可用分辨率,但不保证是单调的。但是,在 PC 硬件上,两者通常都具有纳秒分辨率。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(135)
C语言中强制转换类型:什么是C语言中的原子类型(c atom)
上一篇
Incognito:如何使用ChromeIncognito运行 Cypress头测试
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(48条)