在 Python 3 中打印 datetime.now().date()
会给出类似 2015-09-29 的结果。
但是,当我想将 datetime.now().date()
与此常量进行比较时,它不起作用。我尝试了以下代码片段
import datetime
if datetime.now().date() == 2015-09-29:
print('Hello')
这会导致语法错误:无效 token 。
import datetime
if datetime.now().date() == '2015-09-29':
print('Hello')
这不会导致错误,但是(在 2015 年 9 月 29 日运行此代码时),它也不会打印 Hello
import datetime
if datetime.now().date() == datetime.date(2015,9,29):
print('Hello')
这会导致错误:描述符“date”需要一个“datetime.datetime”对象但收到一个“int”。
有人可以帮我解决这个相当简单的问题吗?谢谢!
最佳答案
您的代码实际上给了我一个不同的错误:
>>> import datetime
>>> if datetime.now().date() == datetime.date(2015,9,29):
... print("hello")
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'now'
now
不是 datetime 模块的方法,它是 datetime.datetime 类的方法。是的,这很困惑。
>>> import datetime
>>> if datetime.datetime.now().date() == datetime.date(2015,9,29):
... print('Hello')
...
Hello
或者,我可以获得您所做的错误消息,但前提是我调整了 import
语句:
>>> from datetime import datetime
>>> if datetime.now().date() == datetime.date(2015,9,29):
... print('Hello')
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: descriptor 'date' requires a 'datetime.datetime' object but received a 'int'
但是您不能以这种方式创建date
对象,因为您只导入了datetime
类。尝试导入两者。
>>> from datetime import datetime, date
>>> if datetime.now().date() == date(2015,9,29):
... print('Hello')
...
Hello
关于date - 将 datetime.now().date() 与 Python 中的日期常量进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32851583/