计算python中的已用时间

时间:2015-08-13 01:08:03

标签: python

如何使用python计算事件的开始时间和结束时间之间的经过时间,格式为00:00:00和23:59:59?

2 个答案:

答案 0 :(得分:0)

我不确定如何使用time模块执行此操作,但您可以使用datetime模块,在事件开始时获取结果datetime.datetime.now()并将其保存在变量。

然后,当事件再次结束时,获取datetime.datetime.now()并从中减去第一次。您将获得一个datetime.timedelta()对象,您可以将其转换为str()以获取所需格式的数据。

示例/演示 -

>>> d = datetime.datetime.now()
>>> d1 = datetime.datetime.now()
>>> str(d1 - d)
'0:00:06.989000'
>>> str(datetime.timedelta(0,84332,12332))
'23:25:32.012332'

如果你不想要微秒部分,你可以在rsplit()上使用'.'并取第一部分,例如 -

>>> str(d1 - d).rsplit('.',1)[0]
'0:00:06'
>>> str(datetime.timedelta(0,84332,12332)).rsplit('.',1)[0]
'23:25:32'

答案 1 :(得分:0)

time.time()只是系统时间,仅此而已。 datetime可能是一个计划,但如果你想DIY,divmod效果很好

def pretty_time(t):
    """takes a time, in seconds, and formats it for display"""
    m, s = divmod(t, 60)
    h, m = divmod(m, 60)
    s = round(s) #Rounds seconds to the nearest whole number
    h = str(h).rjust(2,'0') #covert to strings,
    m = str(m).rjust(2,'0') #adding 0 if necessary to make 
    s = str(s).rjust(2,'0') #each one two digits long
    return "{}:{}:{}".format(h,m,s)

然后只需用

打电话
pretty_time(end_time-start_time)

(例子:

In [5]: pretty_time(3600)
Out[5]: '01:00:00'

In [6]: pretty_time(3500)
Out[6]: '00:58:20'

(请注意,我没有费心检查24小时以上的时间,这只会给你“25:45:21”这样的事情)