【发布时间】:2018-09-12 08:05:12
【问题描述】:
我正在使用 isodate 将 isoformat 中的持续时间解析为日期:
>>> isodate.parse_duration("P1M")
isodate.duration.Duration(0, 0, 0, years=0, months=1)
>>> isodate.parse_duration("P1D")
datetime.timedelta(1)
月份被解析为 duration 对象,天被解析为 timedelta 对象,如文档中所述:https://pypi.org/project/isodate/
我想测试可以是duration类型或timedelta类型的变量的值是否大于0。适用于duration类型的方法不适用于timedelta输入,反之亦然。
>>> isodate.parse_duration("P1M") > 0
True
>>> isodate.parse_duration("P1D") > 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can't compare datetime.timedelta to int
>>> isodate.parse_duration("P1M") > timedelta.min
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can't compare datetime.timedelta to Duration
>>> isodate.parse_duration("P1D") > timedelta.min
True
有什么好的解决办法?
【问题讨论】: