You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中timedelta(months=12)初始化失败,请求技术帮助

解决datetime添加一年报错的问题

Python标准库的timedelta类不支持months或years这类参数,它仅接受固定时长的参数(比如days、seconds、microseconds),这就是你执行代码时抛出TypeError: 'months' is an invalid keyword argument for __new__()的原因。

两种可行解决方案:

  • 方案一:使用第三方库python-dateutil
    先安装依赖:

    pip install python-dateutil
    

    然后修改代码:

    from datetime import datetime
    from dateutil.relativedelta import relativedelta
    
    current_date = datetime.today().date()
    next_year_date = current_date + relativedelta(years=1)
    print(next_year_date)
    

    relativedelta专门用于处理日期的相对增减,能自动处理月份、年份的可变天数问题。

  • 方案二:不依赖第三方库,手动处理年份
    直接修改日期的年份,同时处理闰年2月29的特殊情况:

    from datetime import datetime
    
    current_date = datetime.today().date()
    try:
        next_year_date = current_date.replace(year=current_date.year + 1)
    except ValueError:
        # 若原日期是闰年2月29,下一年无该日期则改为2月28
        next_year_date = current_date.replace(year=current_date.year + 1, day=28)
    print(next_year_date)
    

内容的提问来源于stack exchange,提问作者dark dayone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 21:53:10