【发布时间】:2019-06-21 00:04:36
【问题描述】:
我正在用 Python 做一些时间计算。
目标:
其中一部分是试图:
给定一个日期,加上时间间隔(X年,X月,X周),返回日期
即
- 输入参数:input_time (datetime.date)、interval (datetime.timedelta)
- 返回:datetime.date
我查看了日期时间和datetime.timedelta docs
class datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, week=0)¶
如果我想增加一定的小时数或周数,这些似乎很有效。不过,
问题:
- 我正在尝试实现诸如 date + 1 year 之类的操作,但无法弄清楚
例如
start = datetime.datetime(2000, 1, 1)
# expected output: datetime.datetime(2001, 1, 1)
# with the weeks, etc arguments given in timedelta, this fails unsurprisingly e.g
start + datetime.timedelta(weeks = 52)
# returns datetime.datetime(2000, 12, 30, 0, 0)
问题
这种基于年份的操作是否可以使用 datetime 的基本工具进行 - 如果可以,我将如何进行?
我意识到对于年份的例子,我可以只做
start.replace(year = 2001),但如果我有几个月或几周的输入,这种方法就会失败。据我了解,dateutil 库具有更高级的功能,但我不清楚它与内置日期时间对象的交互效果如何。
我已经查看过类似的question,但这对我没有帮助。
非常感谢任何帮助!
在 MacO 上运行 Python 3.6.5。
【问题讨论】:
标签: python datetime timedelta python-dateutil