python 将 timedelta 转换为有意义的字符串,例如“1 小时”

python convert timedelta to meaningful string such as "1 hours"

我想将 python timedelta 对象转换为易于阅读的有意义的字符串

例如:

0 1:0:0 -> 1 hours
0 0:5:0. -> 5 minutes
2 0:0:0. ->. 2 days

有什么想法吗?

谢谢

其实timedeltaclass,直接给你dayssecondsmicroseconds属性。但是为了得到“小时”和“分钟”,你可以自己做一些简单的计算。

import datetime

d1 = datetime.datetime(2012, 4, 20, second=10, microsecond=14)
d2 = datetime.datetime(2012, 3, 20, second=8, microsecond=4)
delta = d1 - d2

print(delta)
print(delta.days)
print(delta.seconds)
print(delta.microseconds)

秒除以 60 得到分钟,除以 3600 得到小时

您可能想看看 humanize python 图书馆:

>>> humanize.naturaldelta(dt.timedelta(seconds=1001))
'16 minutes'