Joh*_*ohn 2 python csv timedelta
我正在向csv导出timedeltas列表,这些日子真的搞砸了格式.我试过这个:
while time_list[count] > datetime.timedelta(days = 1):
time_list[count] = (time_list[count] - datetime.timedelta(days = 1)) + datetime.timedelta(hours = 24)
Run Code Online (Sandbox Code Playgroud)
但它会立即转换回天,并创造一个无限循环.
默认情况下str(),a 的转换timedelta将始终包含该days部分.在内部,值总是标准化为天数,秒和微秒,尝试将天数"转换"为几小时是没有意义的,因为没有跟踪单独的小时组件.
如果要以timedelta()不同方式格式化对象,可以手动轻松完成:
def format_timedelta(td):
minutes, seconds = divmod(td.seconds + td.days * 86400, 60)
hours, minutes = divmod(minutes, 60)
return '{:d}:{:02d}:{:02d}'.format(hours, minutes, seconds)
Run Code Online (Sandbox Code Playgroud)
这忽略了任何微秒部分,但是这很简单:
return '{:d}:{:02d}:{:02d}.{:06d}'.format(hours, minutes, seconds, td.microseconds)
Run Code Online (Sandbox Code Playgroud)
演示:
>>> format_timedelta(timedelta(days=2, hours=10, minutes=20, seconds=3))
'58:20:03'
>>> format_timedelta(timedelta(hours=10, minutes=20, seconds=3))
'10:20:03'
Run Code Online (Sandbox Code Playgroud)