获取当前日期/时间并与其他日期进行比较

时间:2015-09-09 15:45:11

标签: python python-3.x

我试图获取当前时间,并将其与字符串中的日期进行比较。 这是我的代码:

import datetime

CurrentDate = str(datetime.datetime.now())
CurrentDate = datetime.strptime(CurrentDate, "%d/%m/%Y %H:%M")
print(CurrentDate)

ExpectedDate = "9/8/2015 4:00"
ExpectedDate = datetime.datetime.strptime(ExpectedDate, "%d/%m/%Y %H:%M")
print(ExpectedDate)

if CurrentDate > ExpectedDate:
    print("Date missed")
else:
    print("Date not missed")

但这是我得到的错误。

  

CurrentDate = datetime.strptime(CurrentDate,"%d /%m /%Y%H:%M")   AttributeError:' module'对象没有属性' strptime'

2 个答案:

答案 0 :(得分:4)

datetime.datetime.now()转换为字符串没有多大意义,只需将其转换回日期时间即可。请保持原样。

import datetime

CurrentDate = datetime.datetime.now()
print(CurrentDate)

ExpectedDate = "9/8/2015 4:00"
ExpectedDate = datetime.datetime.strptime(ExpectedDate, "%d/%m/%Y %H:%M")
print(ExpectedDate)

if CurrentDate > ExpectedDate:
    print("Date missed")
else:
    print("Date not missed")

结果:

2015-09-09 12:25:00.983745
2015-08-09 04:00:00
Date missed

答案 1 :(得分:3)

在datetime模块中,一个类被命名为datetime,你可能知道它,因为你在其余的代码中做到了。

你的第三行应该是:

CurrentDate = datetime.datetime.strptime(CurrentDate, "%d/%m/%Y %H:%M")

两个datetime的内容只有一个。该行引发了错误。 或者,您可以导入整个班级:

from datetime import datetime

并且不需要指定datetime两次,这有点容易。

编辑:正如两位炼金术士所指出的那样(我真的没有注意到)是你用一个字符串来比较日期,这不是开始工作一个好的做法。请查看this question中有关比较Python中的日期而不将其转换为字符串的各种代码段。