我希望覆盖timedelta
字符串表示形式,以便在大于一天的时间内得到例如“ 26:00:00”,而不是“ 1 day,2:00:00”。我已经重写了__str__
的{{1}}方法来获取所需的字符串,但是我意识到timedelta
算术仍然会返回标准的datetime
对象,但是我没有想覆盖datetime实现的大块内容。
timedelta
我也尝试过猴子修补import datetime
class TimedeltaNoDays(datetime.timedelta):
def __str__(self):
mm, ss = divmod(self.seconds, 60)
hh, mm = divmod(mm, 60)
hh += self.days * 24
s = "%d:%02d:%02d" % (hh, mm, ss)
if self.microseconds:
s = s + ".%06d" % self.microseconds
return s
,但出现错误:
timedelta.__str__
如何做到这一点,以使其覆盖我项目中timedelta的行为?