仅工作几天时, datetime.timedelta
(来自Python标准库)和 dateutil.relativedelta.relativedelta
有什么区别?
据我了解,timedelta
仅支持几天(和几周),而relativedelta
增加了对根据年,月,周或天定义的时间段的支持,以及为年,月或天定义的绝对值。 (请记住,出于这个问题的目的,我不必担心小时,分钟或秒)
考虑到我只使用 datetime.date
对象,并且只对按天数定义的时间段感兴趣,因此timedelta
和relativedelta
有什么区别?有什么区别吗?
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
包的额外依赖。