在Python中将它们转换为字符串时,正面和负面timedeltas的格式不同:
import datetime
str(datetime.timedelta(hours=2))
--> '2:00:00'
str(datetime.timedelta(hours=-2))
--> '-1 day, 22:00:00'
我更愿意将我的负时间格式设置为正面,但带有否定性指标,如-2:00:00
。
这可以通过某种方式实现吗?
修改
在查看链接的答案后,我想出了这个:
def timedelta_to_string(timedelta):
total_seconds = timedelta.total_seconds()
if total_seconds < 0:
timedelta_str = '-' + str(datetime.timedelta() - timedelta)
else:
timedelta_str = str(timedelta)
return timedelta_str
这给出了:
timedelta_to_string(datetime.timedelta(hours=2))
>>> '2:00:00'
timedelta_to_string(datetime.timedelta(hours=-2))
>>> '-2:00:00'
timedelta_to_string(datetime.timedelta(hours=30))
>>>'1 day, 6:00:00'
timedelta_to_string(datetime.timedelta(hours=-30))
>>> '-1 day, 6:00:00'
为timedeltas显示天数&gt; 24小时对我没问题。 是否有任何我不知道的边缘情况不适合这种方法?
答案 0 :(得分:1)
我似乎找不到我发现它的StackOverflow帖子,但是github上有一个可读的模块,你可能觉得它很有用。