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

标签 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 年及以后的问题。它告诉我 1/10/2018 在今天的 10/24/2017 之前。 有没有办法正确更改日期格式,以便在此程序中正确读取它们?

如果 datd = 1/10/2018,我希望输出显示“密码未过期”

最佳答案

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 域等中假设了哪个时区。

引用:

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

关于python - 如何检查日期是否早于今天的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46915426/

相关文章:

python - Pandas 向前填充 ffill() 直到另一列的条件为 false

python - 使用 np.argpartition 对多维数组中的值进行索引

python - 在 Jupyter Notebook 中使用 Scrapy/直接访问响应

python - 根据 PYTHON 中具有匹配列名称的模板更改 pandas 数据框列的数据类型

windows - 宏碁显示器序列号

python - 如何让 matplotlib 热图子图的大小反射(reflect)每个子图数据中的行数?

python - numpy 数组类型设置的奇怪行为

python - 谷歌或工具: Employee Scheduling with availability constraint

python-3.x - 排序 pandas value_counts() 主要按降序计数,其次按升序值

python - 从具有 txt 中指定标签的字典构建数据框