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

如何在Python中格式化持续时间(timedelta)?,python,datetime,formatting,duration,timedelta,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(durat

我是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))
startTime=datetime.datetime.now().replace(微秒=0)
...  ...
endTime=datetime.datetime.now().replace(微秒=0)
持续时间=结束时间-开始时间
打印(“持续时间为”+str(持续时间))
输出为=>持续时间为0:01:28 我能知道如何从结果中删除小时吗? 我想显示=>持续时间是01:28


提前谢谢

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

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

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

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

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

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

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

print datetime.time(0, 0, durationTime.seconds).strftime("%M:%S")
另一种方法是操纵字符串:

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

您可以通过将
durationTime
这一
datetime.timedelta
对象转换为
datetime.time
对象,然后使用
strftime

print datetime.time(0, 0, durationTime.seconds).strftime("%M:%S")
另一种方法是操纵字符串:

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

看起来你必须自己做,正如[在这篇文章中][1]所建议的那样。[1] :strftime()在这里不起作用吗?
durationTime
是一个
datetime.timedelta
对象
strftime
不适用于
datetime.timedelta
对象。感谢大家的帮助^^你可能想。看起来你必须自己做,正如[在这篇文章中][1]所建议的那样。[1] :strftime()在这里不起作用吗?
durationTime
是一个
datetime.timedelta
对象
strftime
不适用于
datetime.timedelta
对象。感谢大家的帮助^^你可能想,谢谢!第一种方法解决了我的问题只有在持续时间少于60秒的情况下才有效(谢谢!第一种方法解决了我的问题。)只有在持续时间少于60秒的情况下才有效(((((((((((