两个日期之间的时差(日期时间)

时间:2020-05-03 02:23:30

标签: python date difference python-datetime

我正在尝试用Python编写一个程序来计算两个日期之间的天数。

我从用户那里以2020年5月2日的格式输入信息。我了解到我应该首先将字符串解析为日期,但是我不知道该怎么做。请帮助我。

这是我尝试过的程序:

from datetime import date

first_date(input)
sec_date(input)
con_date = datetime.strptime(first_date, '%d %m %Y').date()
con_date2 = datetime.strptime(first_date, '%d %m %Y').date()
delta = con_date2 - con_date
print(delta)

如果我以字符串May 2 2020的形式输入first_date,以Jun 30 2020的形式输入sec_date,那么如何将该字符串转换为日期格式?注意:只能以上述格式输入。

上面的代码不适用于我将字符串转换为日期。请帮助我将其转换为日期,并找出sec_date至first_date之间的天数。

4 个答案:

答案 0 :(得分:3)

您可以使用适当的strptime format来简单地解析时间。

然后,一旦获得两个date对象,就可以简单地将它们相减:

import datetime 

d1_str = "Apr 29 2020"
d2_str = "May 7 2020"

fmt = "%b %d %Y"

d1 = datetime.datetime.strptime(d1_str, fmt).date()
d2 = datetime.datetime.strptime(d2_str, fmt).date()

delta = d2 - d1
print(delta)
print(delta.days)

输出为:

6 days, 0:00:00
6

答案 1 :(得分:2)

from datetime import datetime

first_date = "May 2 2020"
sec_date = "Jun 30 2020"
con_date = datetime.strptime(first_date, '%b %d %Y').date()
con_date2 = datetime.strptime(sec_date, '%b %d %Y').date()
delta = con_date2 - con_date
print(delta.days)

答案 2 :(得分:1)

这应该有帮助

85

答案 3 :(得分:1)

这里是一种应用方法,该方法将参数的开始日期和结束日期作为参数,返回它们之间的日期差。 希望对您有所帮助。

from datetime import date
import time

first_date = input("Enter First Date: ").split(" ")
sec_date = input("Enter Second Date: ").split(" ")

def getTimeDiff(fist_date, second_date):
    month1 = time.strptime(first_date[0], "%b").tm_mon
    month2 = time.strptime(second_date[0], "%b").tm_mon

    date1 = date(int(fist_date[2]), month1, int(first_date[1]))
    date2 = date(int(second_date[2]), month2, int(second_date[1]))
    delta = date2 - date1
    return delta.days

res = getTimeDiff(first_date, sec_date)
print(res)