date - 将 datetime.now().date() 与 Python 中的日期常量进行比较

标签 date datetime python-3.x

在 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/

相关文章:

java - 日期时区在查找位置 "America/Punta_Arenas"的 ID 时遇到问题

java - 在Java中创建日期对象最有效的方法是什么

java - 从米利斯得到错误的日期

python - 创建没有重复的树

python - obj 必须是 type 的实例或子类型

python-3.x - pytorch collat​​e_fn 拒绝样本并产生另一个

javascript - 在经典 ASP 中将日期转换为 GMT

Python程序和日期时间本地化

c# - ASP.NET MVC 显示没有时间的日期

java - 解析没有时区转换的日期