2015-09-29 52 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()'在後一種情況下 –

相關問題