我有一个运行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
答案 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