如何格式化Python中的持续时间(timedelta)?

时间:2015-06-24 05:45:06

标签: python datetime formatting duration timedelta

我是python的新手。 我试图显示持续时间。 我做的是:

startTime = datetime.datetime.now().replace(microsecond=0)
... <some more codes> ...
endTime = datetime.datetime.now().replace(microsecond=0)
durationTime = endTime - startTime
print("The duration is " + str(durationTime))

输出=&gt;持续时间为0:01:28 我可以知道如何从结果中删除小时数吗? 我想显示=&gt;持续时间是01:28

提前致谢!

2 个答案:

答案 0 :(得分:3)

您可以按如下方式拆分时间点:

>>> hours, remainder = divmod(durationTime.total_seconds(), 3600)
>>> minutes, seconds = divmod(remainder, 60)
>>> print '%s:%s' % (minutes, seconds)

这将使用python的内置divmod将timedelta中的秒数转换为小时数,然后剩余部分将用于计算分钟和秒数。然后,您可以明确打印所需的时间单位。

答案 1 :(得分:-1)

您可以将durationTime datetime.timedelta对象转换为datetime.time对象,然后使用strftime来完成此操作。

print datetime.time(0, 0, durationTime.seconds).strftime("%M:%S")

另一种方法是操纵字符串:

print ':'.join(str(durationTime).split(':')[1:])