在 Python 中将天数添加到日期

时间:2022-10-28 01:18:54

使用 datetime 模块中的 timedelta() 方法将天数添加到日期中,例如 result_1 = date_1 + timedelta(days=3)timedelta 方法可以传递天数参数并将指定的天数添加到日期。

from datetime import datetime, date, timedelta

# ✅ 将天数添加到日期
my_str = '09-24-2023'  # ????️ (mm-dd-yyyy)
date_1 = datetime.strptime(my_str, '%m-%d-%Y')

print(date_1)  # ????️ 2023-09-24 00:00:00

result_1 = date_1 + timedelta(days=3)
print(result_1)  # ????️ 2023-09-27 00:00:00

# -----------------------------------------------

# ✅ 将天数添加到当前日期

current_date = datetime.today()
print(current_date)  # ????️ 2022-06-20 09:42:22.341830

result_2 = current_date + timedelta(days=7)
print(result_2)  # ????️ 2022-06-27 09:43:09.084770


# -----------------------------------------------

# ✅ 使用 date 而不是 datetime

date_3 = date(2023, 9, 24)
print(date_3)  # ????️ 2023-09-24

result_3 = date_3 + timedelta(days=3)
print(result_3)  # ????️ 2023-09-27

# -----------------------------------------------

# ✅ 将天数添加到当前日期(使用 date 而不是 datetime)

date_4 = date.today()
print(date_4)  # ????️ 2022-06-20

result_4 = date_4 + timedelta(days=7)
print(result_4)  # ????️ 2022-06-27

确保从 datetime 模块导入 datetimedatetimedelta 类。

使用此方法时,月份(和年份)将在必要时滚动。

第一个示例使用 datetime.strptime() 方法获取与提供的日期字符串对应的日期时间对象,并根据指定格式进行解析。

一旦我们有了 datetime 对象,我们就可以使用 timedelta 类来添加天数。

from datetime import datetime, timedelta


my_str = '09-24-2023'  # ????️ (mm-dd-yyyy)

date_1 = datetime.strptime(my_str, '%m-%d-%Y')
print(date_1)  # ????️ 2023-09-24 00:00:00

result_1 = date_1 + timedelta(days=3)
print(result_1)  # ????️ 2023-09-27 00:00:00

示例中的日期字符串格式为 mm-dd-yyyy

如果我们有一个以不同方式格式化的日期字符串,请使用此文档表来查找您应该作为第二个参数传递给 strptime() 方法的格式代码。

第二个示例将天数添加到当前日期。

from datetime import datetime, timedelta


current_date = datetime.today()
print(current_date)  # ????️ 2022-06-20 09:42:22.341830

result_2 = current_date + timedelta(days=7)
print(result_2)  # ????️ 2022-06-27 09:43:09.084770

datetime.today() 方法返回当前本地日期时间。

第三个示例在向日期添加天数时使用 date() 方法而不是 datetime 方法。

from datetime import date, timedelta

date_3 = date(2023, 9, 24)
print(date_3)  # ????️ 2023-09-24

result_3 = date_3 + timedelta(days=3)
print(result_3)  # ????️ 2023-09-27

datetime.timedelta 方法可以传递我们想要添加到 datedatetime 对象的天数。

timedelta 方法可以将天、周、小时、分钟、秒、毫秒和微秒作为参数传递。

所有参数都是可选的,默认为 0。

最好只在对 timedelta 类的调用中使用关键字参数,因为参数的顺序可能会造成混淆。

如果我们只需要在操作后提取日期,请在 datetime 对象上调用 date() 方法。

from datetime import datetime, timedelta

now = datetime.now()
print(now)  

result = now + timedelta(days=5)
print(result)  

print(result.date())  

datetime.date 方法返回具有相同年月日的日期对象。

如果我们需要以某种方式格式化日期,请使用格式化字符串文字。

from datetime import datetime, timedelta

now = datetime.now()
print(now)  

result = now + timedelta(days=6)
print(result)  

print(result.date())  

print(f'{result:%Y-%m-%d %H:%M:%S}')  

格式化字符串文字 (f-strings) 让我们通过在字符串前加上 f 来在字符串中包含表达式。

确保将表达式用大括号括起来 - {expression}

格式化字符串文字还使我们能够在表达式块中使用格式规范迷你语言。

第四个示例将天数添加到表示当前日期的 date 对象。

from datetime import date, timedelta


date_4 = date.today()
print(date_4) 

result_4 = date_4 + timedelta(days=7)
print(result_4) 

date.today 方法返回一个表示当前本地日期的 date 对象。