python datetime 加一个月_在当前日期加一年PYTHON

在当前日期加一年PYTHON

我已经使用以下变量从数据库中获取了一个日期

{ { i.operation_date }}

我得到了一个像

April 1, 2013

我需要在上面加上一年,这样我才能得到

April 1, 2014

请提出建议,我该怎么做?

user2106353 asked 2020-02-05T20:29:30Z

7个解决方案

100 votes

AGSM的答案显示了使用python-dateutil软件包解决此问题的便捷方法。 但是,如果您不想安装该软件包怎么办? 您可以像这样在香草Python中解决问题:

from datetime import date

def add_years(d, years):

"""Return a date that's `years` years after the date (or datetime)

object `d`. Return the same calendar date (month and day) in the

destination year, if it exists, otherwise use the following day

(thus changing February 29 to March 1).

"""

try:

return d.replace(year = d.year + years)

except ValueError:

return d + (date(d.year + years, 1, 1) - date(d.year, 1, 1))

如果您想要其他可能性(从2月29日更改为2月28日),那么最后一行应更改为:

return d + (date(d.year + years, 3, 1) - date(d.year, 3, 1))

Gareth Rees answered 2020-02-05T20:29:54Z

46 votes

您可以使用Python-dateutil的datetime来增加.replace()对象,同时保持对leap年和月长之类的内容的敏感性。 如果已有的话,Python-dateutil与matplotlib打包在一起。 您可以执行以下操作:

from dateutil.relativedelta import relativedelta

new_date = old_date + relativedelta(years=1)

(此答案由@Max提供给类似的问题)。

但是,如果您的日期是字符串(即还不是datetime对象),则可以使用datetime进行转换:

from datetime import datetime

from dateutil.relativedelta import relativedelta

your_date_string = "April 1, 2012"

format_string = "%B %d, %Y"

datetime_object = datetime.strptime(you

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值