2015-09-29 51 views
2

在Python 3中打印datetime.now().date()会给出类似于2015-09-29的内容。 但是,当我想将datetime.now().date()与此常量进行比较时,它不起作用。我试着下面的代码片段在Python 3中将datetime.now()。date()与日期常量进行比较

import datetime 
if datetime.now().date() == 2015-09-29: 
    print('Hello') 

这将导致一个语法错误:无效令牌

import datetime 
if datetime.now().date() == '2015-09-29': 
    print('Hello') 

这导致没有错误,但(运行于2015年9月29日这段代码时),它不打印您好要么

import datetime 
if datetime.now().date() == datetime.date(2015,9,29): 
    print('Hello') 

这将导致一个错误:描述'date'需要'datetime.datetime'对象,但收到'int'。

任何人都可以帮助我解决这个相当简单的问题吗?谢谢!

+0

这是'datetime.datetime.now()' –

回答

5

你的代码实际上给了我一个不同的错误:

>>> 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 
+2

可以更换'datetime.now()日期()'和'date.today()'在后一种情况下 –

相关问题