我需要将天转换为小时,分钟,秒
def get_working_hours(self, obj):
return datetime.strptime(str(obj.working_hours), '%H:%M:%S.%f').time()
ValueError:时间数据'1天,7:06:38.340741'与格式'%H:%M:%S.%f'不匹配
答案 0 :(得分:0)
简短答案:将其保留为timedelta
对象。
obj.working_hours
是timedelta
object [Python-doc]。确实:
>>> str(timedelta(days=1, hours=7, minutes=6, seconds=38, microseconds=340741))
'1 day, 7:06:38.340741'
因此,这里的总小时数为31。您无法使用time
对象来表示小时数。您可能应该只将其保留为timedelta。例如,您可以使用以下方法计算小时数:
>>> td.total_seconds()//3600 # hours
31.0
>>> (td.total_seconds() //60) % 60 # minutes
6.0
>>> td.total_seconds() % 60 # seconds
38.340741000007256
但是time
对象只能有00:00:00.000000
到23:59:59.999999
范围内的时间。因此,您不能在此处使用time
对象。