python中的datetime ()构造函数可用于计算python中两个日期之间的差异。我们可以使用 python 中 datetime() 模块中的 timedelta 构造从开始日期减去结束日期。timedelta 构造将 24 小时视为一天。
使用 timedelta 时,我们需要指定小时、分钟和秒,然后将其设置为零才能成功计算。
日期可以以字符串、日期对象或日期时间对象的形式给出。对于字符串,我们需要将字符串剥离为正确的日期时间格式才能对其进行操作。
在Python中,我们可以通过两种主要方法来查找两个日期之间的差异。让我们一一看看。
要了解有关 datetime() 的更多信息,请访问官方文档。
安装日期时间()
如果您的系统中还没有 datetime 模块,则需要在管理员模式下在命令提示符中运行以下代码。
pip install datetime |
如果您使用 conda 发行版而不是 pip,那么您将必须采取一些额外的步骤。您已在管理员模式下的命令提示符中运行了以下所有命令。
anaconda login conda install -c trentonoliphant datetime |
显然,anaconda 有时在寻找非常常见的包时遇到一些麻烦。
date
找出两个物体之间的差异
date
当日期没有作为字符串输入给出时,可以直接计算两个 s 之间的差异。让我们看看如何实现这一点:
#importing required modules from datetime import date #defining the function for subtracting def get_difference(startdate, enddate): diff = enddate - startdate return diff.days #initializing dates startdate = date( 2023 , 2 , 20 ) enddate = date( 2023 , 3 , 15 ) #storing the result and calling the function days = get_difference(startdate, enddate) #displaying the result print (f 'Difference is {days} days' ) |
上述代码的输出将是:
Difference is 23 days |
datetime
两个对象之间的差异
在这种情况下,还涉及时间和日期。这里我们必须从日期中去掉时间才能正确计算天数。
#importing required modules from datetime import datetime # datetime in string format start_date = '2023/1/20 07:15:30.365020' end_date = '2023/2/28 05:20:45.193452' #converting the string input to date start_date1 = datetime.strptime(start_date, "%Y/%m/%d %H:%M:%S.%f" ) end_date1 = datetime.strptime(end_date, "%Y/%m/%d %H:%M:%S.%f" ) # calculating the difference in dates diff = end_date1 - start_date1 #displaying the difference print (f 'Difference is {diff.days} days' ) |
上述代码的输出与第一个代码类似。
Difference is 38 days |
另请阅读:使用 Matplotlib 将 RGB 图像转换为灰度图像。
获取用户输入的日期范围
现在,让我们看看如何为每个用户自定义日期输入。
#importing required modules import datetime #taking user input for start date styear = int ( input ( 'Enter start year=' )) stmonth = int ( input ( 'Enter start month=' )) stday = int ( input ( 'Enter start day=' )) datestart = datetime.date(styear, stmonth, stday) print ( "start date is=" ,datestart) #taking user input for end date endyear = int ( input ( 'Enter last year=' )) endmonth = int ( input ( 'Enter last month=' )) endday = int ( input ( 'Enter last day=' )) dateend = datetime.date(endyear, endmonth, endday) print ( "end date is=" ,dateend) #defining the function for calculating difference between dates def get_diff(startdate, enddate): diff = enddate - startdate return diff.days #storing the result and calling the function days = get_diff(datestart, dateend) #displaying the result print (f 'Difference is {days} days' ) |
上述代码的输出将是:
Enter start year=2023 Enter start month=2 Enter start day=1 start date is= 2023-02-01 Enter last year=2023 Enter last month=3 Enter last day=5 end date is= 2023-03-05 Difference is 32 days |
相关:在 Python 中比较日期和时间 [简单的一步一步]
概括
本教程是一个完整的指南,指导您使用各种类似日期的对象来计算 python 中两个日期之间的差异。python 中的日期时间操作可以使用名为 datetime 的 python 库来完成。我们可以从 datetime 包中导入 datetime() 构造函数,该构造函数可以与 python 包安装程序 pip 一起使用。也可以使用 conda 安装程序进行安装。