仅工作几天时, datetime.timedelta (来自Python标准库)和 dateutil.relativedelta.relativedelta 有什么区别?

据我了解,timedelta仅支持几天(和几周),而relativedelta增加了对根据年,月,周或天定义的时间段的支持,以及为年,月或天定义的绝对值。 (请记住,出于这个问题的目的,我不必担心小时,分钟或秒)

考虑到我只使用 datetime.date 对象,并且只对按天数定义的时间段感兴趣,因此timedeltarelativedelta有什么区别?有什么区别吗?

from datetime import date, timedelta
from dateutil.relativedelta import relativedelta

i = -1  # This could have been any integer, positive or negative
someday = date.today()
# Is there any difference between these two lines?
otherday = someday + timedelta(days=i)
otherday = someday + relativedelta(days=i)

最佳答案

dateutil是python标准datetime模块的扩展包。如您所说,它提供了额外的功能,例如以大于一天的单位表示的时间增量。

如果您不得不问一些问题,例如在女友的生日到来之前我可以保存多少个月,或者该月的最后一个星期五是什么,这将非常有用。这掩盖了复杂的计算,这些计算是由月份的不同长度或leap年中的额外天数引起的。

就您而言,您只对天数感兴趣。因此,最好使用timedelta,因为这样可以避免对dateutil包的额外依赖。

10-06 14:57