了解时间增量
给定下面的python代码,请帮助我了解那里发生的事情。
start_time = time.time()
time.sleep(42)
end_time = time.time()
uptime = end_time - start_time
human_uptime = str(datetime.timedelta(seconds=int(uptime)))
所以我得到了start time
和之间的区别end time
,在第5行中,我通过强制转换将持续时间取整,现在又有什么进一步的解释?
我知道delta是什么意思(平均值或差值),但是为什么我必须传递seconds =
uptime
给deltatimedelta
以及为什么字符串转换效果如此之好以至于我得到了HH:MM:SS
?
-
因为timedelta的定义如下:
class datetime.timedelta([days,] [seconds,] [microseconds,] [milliseconds,] [minutes,] [hours,] [weeks])
所有参数都是可选的,默认为0。
您可以轻松地通过可选参数说出“三天四毫秒”。
>>> datetime.timedelta(days=3, milliseconds=4) datetime.timedelta(3, 0, 4000) >>> datetime.timedelta(3, 0, 0, 4) #no need for that. datetime.timedelta(3, 0, 4000)
对于str强制转换,它返回一个很好的格式化值,而不是
__repr__
提高可读性。从文档:str(t)返回格式为[D day [s],] [H] H:MM:SS [.UUUUUU]的字符串,其中D表示负t。(5)
>>> datetime.timedelta(seconds = 42).__repr__() 'datetime.timedelta(0, 42)' >>> datetime.timedelta(seconds = 42).__str__() '0:00:42'
结帐文档:
http://docs.python.org/library/datetime.html#timedelta-
objects