两个日期之间的日期时差

问题描述 投票:0回答:2

[嗨,我正在尝试用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)

如果我以first_date的字符串May 2 2020和sec_date的字符串Jun 30 2020的形式输入,那么我该如何将该字符串转换为日期格式。 (i)输入应仅以上述格式输入。上面的代码不适用于我将字符串转换为日期。请帮助我将其转换为日期,并找出sec_date至first_date之间的天数

python date difference
2个回答
0
投票

这应该有帮助

from datetime import date
#year, month, day
d0 = date(2020, 5, 2)
d1 = date(2020, 6, 30)
delta = d1 - d0
print(delta.days)

0
投票

如果给您以“月日年”格式的日期,那么您需要更改datetime.strptime调用以对该格式使用正确的日期格式。请参阅此documentation page,其中列出了所有时间格式选项。

在这种情况下,最接近的格式字符串似乎是'%b%d%Y',但请注意,由于May 2 2020不会正确解析您的May 02 2020示例,因为第一个选项不为零-papped。

您最好的选择可能是对提供给您的日期进行后处理,以将其零填充。这是一个如何工作的示例(假设Python 3将Python 2从input更改为raw_input):

from datetime import datetime

def normalize_date():
    user_date = input()
    if user_date.count(' ') < 2:
        raise Exception("Error! Incorrect date format provided")

    month, day, year = user_date.split(' ')
    padded_day = day.zfill(2)
    date_formatted = "{} {} {}".format(month, padded_day, year)

    return datetime.strptime(date_formatted, '%b %d %Y').date()
© www.soinside.com 2019 - 2024. All rights reserved.