如何在 Python 中向日期添加天数

在本文中,我们使用 Python 内置模块,datetime该模块使我们能够在 python 中对日期和时间值执行操作和操作。我们可以传递持续时间或两个日期之间我们想要的差异并接收结束日期。days该值可以以,weeks的形式传递months

另请阅读:如何使用 Python TimeDelta?

python 中的日期

通过导入内置的 python 包 ie,datetime我们可以使用 Date 函数。除了日期对象之外,我们还有时间对象来处理时间、日期和天数。datetime模块以年、月、日、时、分、秒的形式描述日期。datetime模块有许多方法来返回有关日期的信息,这些信息可以根据用户进行操作,例如我们可以用来date ()仅返回日期和时间。

库概述

我们使用datetimetimedelta模块来为给定日期添加天数。

datetime:日期和时间操作类在datetime 模块中可用,该datetime对象返回日期以及小时、分钟和秒。

timedelta:两个日期或时间之间的差异由timedelta对象表示,例如,在下面的实现中,我们传递days=5值以timedelta接收与给定或当前日期的 5 天差异。

向日期添加天数的示例

现在让我们看一下在 Python 中向日期添加天数的不同示例

示例 1:使用以下命令向给定日期添加天数datetime

from datetime import datetime
from datetime import timedelta
 
#adding days to given date
 
given_date_string = "2030-02-01"  #year-month-day format
 
#conversion from string to datetime object
given_date = datetime.strptime(given_date_string,"%Y-%m-%d")
 
#printing given date
print("The Given date: ",given_date_string)
 
#calculating new date
new_date = given_date + timedelta(days=6)
 
print("The New date: ",new_date)

在上面的代码中,我们:

  1. 使用该语句从包中导入datetime和模块timedeltadatetimefrom datetime import datetime, timedelta
  2. "2030-02-01"为变量分配了一个字符串日期given_date_string
  3. datetime使用该函数将字符串日期转换为对象datetime.strptime(),该函数有两个参数:第一个是要转换的字符串,第二个是字符串的格式。格式%Y-%m-%d字符串指定应按顺序从字符串中提取年、月和日。
  4. 使用 打印字符串格式的原始日期print("The Given date: ", given_date_string)
  5. datetime使用该函数在原始日期上添加 6 天来创建一个新对象timedelta()此函数采用单个参数,该参数指定要在原始日期中添加或减去的天数(或其他单位)。在本例中,days参数设置为 6。
  6. 使用 打印字符串格式的新日期print("The New date: ", new_date)

如果日期字符串的格式不同,您可以查找需要作为第二个参数传递的格式代码。

输出:

The Given date:  2030-02-01
The New date:  2030-02-07 00:00:00
%A 工作日的前三个字母 Sun
%A 工作日的完整名称 Sunday
%b 该月的前三个字母 Oct
%B 月份的完整名称 October
其他流行的格式代码

示例 2:使用以下命令向当前日期添加天数timedelta

from datetime import timedelta
from datetime import date
 
#adding days to current date
current_date = date.today()
 
#printing current date
print('Current date: ',current_date)
 
#calculating new date
new_date = current_date + timedelta(days=4)
 
#printing new date
print('New date: ',new_date)

输出:

Current date:  2023-02-12
New date:  2023-02-16

示例 3:使用date类向日期添加天数

from datetime import timedelta
from datetime import date
#using the date class to add days to a date
date = date(2023,2,12)
print("Input date: ",date)
 
#passing the number of days and printing the output
result = date + timedelta(days=3)
print("Result date: ",result)

输出:

Input date:  2023-02-12
Result date:  2023-02-15

示例4:使用date()方法获取结果日期

from datetime import datetime
from datetime import timedelta
 
#using the date() method to get the result date
current_date = datetime.now()
print("Current date: ",current_date)
 
new_date = current_date + timedelta(days=5)
print(new_date) #will print 2023-02-17 23:02:39.058226
 
print(new_date.date()) #will print 2023-02-17

输出:

Current date:  2023-02-12 23:06:34.392314
New date:  2023-02-17 23:06:34.392314
2023-02-17

示例 5:向给定日期添加周数

from datetime import datetime
from datetime import timedelta
from datetime import date
 
#adding weeks to date
date ='2023-02-12'
 
given_date = datetime.strptime(date,'%Y-%m-%d')
print('Given date: ',given_date)
 
result = given_date + timedelta(weeks = 2)
print("New date: ",result)

输出:

Given date:  2023-02-12 00:00:00
New date:  2023-02-26 00:00:00

示例 6:向当前日期添加周数

from datetime import datetime
from datetime import timedelta
from datetime import date
 
#adding weeks to current date
current_date = date.today()
 
print('Current date: ',current_date)
 
result = current_date + timedelta(weeks = 2)
print("New date: ",result)

输出:

Current date:  2023-02-12
New date:  2023-02-26

示例 7:使用date()班级添加周数

from datetime import datetime
from datetime import timedelta
from datetime import date
 
#adding weeks using date()
current_date = date(2023,2,12)
 
print('Current date: ',current_date)
 
result = current_date + timedelta(weeks = 2)
print("New date: ",result)

输出:

Current date:  2023-02-12
New date:  2023-02-26

添加日期的实际应用

  • 在所需的时间限制内找到文件
  • 处理时区
  • 打印当前时间、月份和年份。

为了方便访问,请访问此文档以获取参考代码和链接。

概括

在本文中,通过使用 datetime 模块或 timedelta 模块,我们学习了如何通过传递天数作为输入来向日期添加天数。

推荐阅读