python - 仅使用天数时, "datetime.timedelta"和 "dateutil.relativedelta.relativedelta"有什么区别?

标签 python datetime timedelta

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 模块的扩展包。正如您所说,它提供了额外的功能,例如以大于一天的单位表示的时间增量。

如果您要问一些问题,例如在我女朋友的生日到来之前我可以存多少个月,或者这个月的最后一个星期五是什么时候,这很有用?这隐藏了由不同月份长度或闰年额外天数引起的复杂计算。

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

关于python - 仅使用天数时, "datetime.timedelta"和 "dateutil.relativedelta.relativedelta"有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12433233/

相关文章:

python - 在 Python 中将分层 pandas DatetimeIndex 保存到 hdf5 时丢失时区感知

python - 带有外键字段的 Django CreateView

html - 在 TextBoxFor 类型日期中将日期格式设置为 dd/MM/yyyy

python - Pandas:将小数月份转换为日期时间

python - 解析 xs :duration datatype into a Python datetime. timedelta 对象?

python - 没有日期的时间增量

c++ - 虚幻 C++ Controller 输入 : Yaw Rotation

python - 如何针对自定义值列表订购 Django 查询?

Python-OpenCV --F 函数错误--找不到正确的目录

java - 用作表格编辑器的 SWT DateTime 控件不会超出表格底部