如何检查日期是否早于今天的日期

时间:2017-10-24 16:19:00

标签: python python-3.x

我有一个运行Windows" net user"命令获取用户的到期日期。例如:" net user justinb / domain"

该程序获取到期日期。我将该失效日期设置为变量 datd

在下面的示例中,我们假设截止日期是1/10/2018。 (注意:Windows不会在月份前面加上0)

import time

datd = "1/10/2018"

# places a 0 in front of the month if only 1 digit received for month
d = datd.split("/")
if len(d[0])==1:
    datd="0"+datd
    print("Changed to: " + datd)

myDate = (time.strftime("%m/%d/%Y"))

print ("This is today's date: " + myDate)

if datd <= myDate:    # if datd is is earlier than todays date
    print (" Password expired. ")
else:
    print (" Password not expired. ")

input(" Press Enter to exit.")

现在,如果 datd 等于2017年的某个日期,它会为我提供正确的信息。但是我在2018年遇到了问题。它告诉我,2014年1月10日是在今天的10/24/2017之前。 有没有办法正确更改日期格式,以便在此程序中正确读取它们?

我希望输出显示&#34;密码未过期&#34;如果datd = 1/10/2018

1 个答案:

答案 0 :(得分:5)

from datetime import datetime

string_input_with_date = "25/10/2017"
past = datetime.strptime(string_input_with_date, "%d/%m/%Y")
present = datetime.now()
past.date() < present.date()

这应该为你做好准备!处理日期的格式为前导0而没有前导。

使用.date()将日期时间与日常日期进行比较。

警告:如果您希望100%正确并且纯粹主义者注意与时区相关的问题。确保在Windows域等中假定了哪个时区。

参考:

datetime strptime - https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior