热线电话:13121318867

登录
2019-01-28 阅读量: 1553
使用datetime.timedelta添加年份

我正在用Python做一些时间计算。

目标:

部分原因是:

给定日期,添加时间间隔(X年,X个月,X周),返回日期

input args:input_time(datetime.date),interval(datetime.timedelta)

return:datetime.date

我查看了datetime和datetime.timedelta文档

class datetime.timedelta(days = 0,seconds = 0,microseconds = 0,milliseconds = 0,minutes = 0,hours = 0,weeks = 0)¶。

如果我想添加一定数小时或数周,这些似乎运作良好。然而,

问题:

我正在尝试实施日期+ 1年等操作,但无法弄明白

例如

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)

解决办法:timedelta 不支持年限,因为一年的持续时间取决于哪一年(例如,闰年是2月29日)。

您可以使用relativedelta替代,它确实支持years并考虑添加的基准日期:

>>> from dateutil.relativedelta import relativedelta

>>> now = datetime.now()

>>> now

datetime.datetime(2019, 1, 27, 19, 4, 11, 628081)

>>> now + relativedelta(years=1)

datetime.datetime(2020, 1, 27, 19, 4, 11, 628081)

0.0000
4
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子