如何在Python中将timedelta更改为持续时间?

时间:2013-06-27 04:23:28

标签: python time

我有这样的timedelta时间:

datetime.timedelta(0, 175, 941041)

我想将此转换为持续时间。例如:

1 second 
2-59 seconds
1 minute
2minutes-59minutes
1 hour
1 hour 50 minutes
2 hours
1 day 5 hours 45 minutes

我怎样才能在Python中执行此操作?

首先,我尝试将timedelta转换为这样的秒数,然后转换为持续时间:

def timedelta_to_seconds(td):
    return td.microseconds + (td.seconds + td.days * 86400) 

但是在运行此函数时出现此错误:

AttributeError: 'function' object has no attribute 'microseconds'

2 个答案:

答案 0 :(得分:1)

你可以做到

>>> import datetime
>>> str(datetime.timedelta(0, 175, 941041))
'0:02:55.941041'

现在您可以获得小时,分钟,秒和毫秒。

OR

请参阅this post if you want nice readable timedelta

答案 1 :(得分:1)

我想你传递给这个函数的不是timedelta,这就是为什么它没有属性微秒。

我不时有这个,当我调用函数来获取timedelta为

a=get_my_timedelta

而不是

a=get_my_timedelta()