如何在 Python (timedelta) 中格式化持续时间?
How to format duration in Python (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))
输出是 => 持续时间是 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 中的秒数转换为小时,然后使用余数计算分钟和秒。然后您可以显式打印所需的时间单位。
您可以通过将 durationTime
这是一个 datetime.timedelta
对象转换为 datetime.time
对象然后使用 strftime
.
print datetime.time(0, 0, durationTime.seconds).strftime("%M:%S")
另一种方法是操纵字符串:
print ':'.join(str(durationTime).split(':')[1:])
我是 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))
输出是 => 持续时间是 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 中的秒数转换为小时,然后使用余数计算分钟和秒。然后您可以显式打印所需的时间单位。
您可以通过将 durationTime
这是一个 datetime.timedelta
对象转换为 datetime.time
对象然后使用 strftime
.
print datetime.time(0, 0, durationTime.seconds).strftime("%M:%S")
另一种方法是操纵字符串:
print ':'.join(str(durationTime).split(':')[1:])