2014-03-13 50 views
0

我需要花时间格式:小时:分钟:秒。但如果我使用:python - 以特定格式获取时间

time.strftime('%H:%M:%S', time.gmtime(my_time))) #my_time is float 

小时有一个24小时制(00到23)。当我有例如25小时和2分钟时,它会写1:02:00,但我需要25:02:00。我该如何解决它?谢谢。

+3

_25:02 :00_是**不是**时间。 – Carsten

+0

如何在使用'time.gmtime'时获得25:02:00? – zhangxaochen

+0

OP正在讨论*逝去的时间*,而不是这里的时间。 –

回答

4

请勿使用time.strftime()来格式化已用时间。您只能使用该格式设置一天的时间值;这两种类型的价值观是相关的但不是相同的东西。

您需要改为使用自定义格式。

如果my_time以秒为经过的时间,你可以使用下面的函数将其格式化为小时:分:秒格式:

def format_elapsed_time(seconds): 
    seconds = int(seconds + 0.5) # round to nearest second 
    minutes, seconds = divmod(seconds, 60) 
    hours, minutes = divmod(minutes, 60) 
    return '{:02d}:{:02d}:{:02d}'.format(hours, minutes, seconds) 

演示:

>>> def format_elapsed_time(seconds): 
...  seconds = int(seconds + 0.5) # round to nearest second 
...  minutes, seconds = divmod(seconds, 60) 
...  hours, minutes = divmod(minutes, 60) 
...  return '{:02d}:{:02d}:{:02d}'.format(hours, minutes, seconds) 
... 
>>> format_elapsed_time(90381.33) 
'25:06:21' 
+0

使用'seconds = int(秒+ .5)'来避免'ValueError:未知格式代码'd'为'float''类型的对象 – jfs

+0

啊我错过了评论,说明这个值是一个浮点数。 –