在 Python 中向日期添加月份
Add months to a date in Python
使用模块中的relativedelta
类dateutil.relativedelta
将月份添加到 Python 中的日期,例如result_1 = date_1 + relativedelta(months=+3)
. 该类relativedelta
自动处理具有不同天数的月份。
主程序
from datetime import date, datetime from dateutil.relativedelta import relativedelta # ✅ add months to a date date_1 = date(2023, 6, 24) print(date_1) # 👉️ 2023-06-24 result_1 = date_1 + relativedelta(months=+3) print(result_1) # 👉️ 2023-09-24 # ---------------------------------------- # ✅ add months to current date date_2 = date.today() print(date_2) # 👉️ 2022-06-20 result_2 = date_2 + relativedelta(months=+2) print(result_2) # 👉️ 2022-08-20 # ---------------------------------------- # ✅ add months to date (using datetime object) my_str = '09-24-2023' # 👉️ (mm-dd-yyyy) date_3 = datetime.strptime(my_str, '%m-%d-%Y') print(date_3) # 👉️ 2023-09-24 00:00:00 result_3 = date_3 + relativedelta(months=+2) print(result_3) # 👉️ 2023-11-24 00:00:00 # ---------------------------------------- # ✅ add months to current date (using datetime object) date_4 = datetime.today() print(date_4) # 👉️ 2022-06-20 10:48:05.892375 result_4 = date_4 + relativedelta(months=+3) print(result_4) # 👉️ 2022-09-20 10:48:05.892375
确保导入relativedelta
类和date
或datetime
类。
如果您没有安装该
python-dateutil
模块,请运行以下命令:壳
pip install python-dateutil
第一个示例显示如何向date
对象添加月份。
主程序
from datetime import date, datetime from dateutil.relativedelta import relativedelta date_1 = date(2023, 6, 24) print(date_1) # 👉️ 2023-06-24 result_1 = date_1 + relativedelta(months=+3) print(result_1) # 👉️ 2023-09-24
请注意,我们在月数前加上了前缀,+
表示我们要添加指定的月数。
该类
relativedelta
自动处理具有不同天数的月份,并且添加一个月永远不会超过月份边界。如有必要,年份将自动滚动(例如,将 11 月的日期增加 5 个月)。
第二个示例将月份添加到date
表示当前日期的对象。
主程序
from datetime import date, datetime from dateutil.relativedelta import relativedelta date_2 = date.today() print(date_2) # 👉️ 2022-06-20 result_2 = date_2 + relativedelta(months=+2) print(result_2) # 👉️ 2022-08-20
date.today
方法返回一个表示当前本地日期的对象。date
第三个示例datetime
从日期字符串创建一个对象并向其添加月份。
主程序
from datetime import datetime from dateutil.relativedelta import relativedelta my_str = '09-24-2023' # 👉️ (mm-dd-yyyy) date_3 = datetime.strptime(my_str, '%m-%d-%Y') print(date_3) # 👉️ 2023-09-24 00:00:00 result_3 = date_3 + relativedelta(months=+2) print(result_3) # 👉️ 2023-11-24 00:00:00
datetime.strptime()方法返回一个日期时间对象,该
对象对应于提供的日期字符串,根据格式进行解析。
如果您有一个以不同方式格式化的日期字符串,请使用
此文档表
来查找您应该作为第二个参数传递给该
strptime()
方法的格式代码。
第四个示例使用对象将月份添加到当前日期datetime
。
主程序
from datetime import datetime from dateutil.relativedelta import relativedelta date_4 = datetime.today() print(date_4) # 👉️ 2022-06-20 10:48:05.892375 result_4 = date_4 + relativedelta(months=+3) print(result_4) # 👉️ 2022-09-20 10:48:05.892375
datetime.today()方法返回当前
本地日期时间。