正如上述評論人士建議,你可能已經與
from datetime import datetime
也就是說,名稱datetime
將參照類datetime
代表日期和時間在一起(從datetime
模塊,進口其進口,令人討厭的是,它有相同的名字)。
然後,date
是用於檢索datetime
對象的日期部分的方法:
In [4]: my_date = datetime(2015,5,7,20,02,00)
In [5]: my_date.date()
In [6]: datetime.date(2015, 5, 7)
它不帶任何參數(見the source)除了self
,所以如果你有一個稱之爲以上整數參數,它抱怨:
In [7]: datetime.date(999)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-5-55d65eb13663> in <module>()
----> 1 datetime.date(999)
TypeError: descriptor 'date' requires a 'datetime.datetime' object but received a 'int'
在此背景下,datetime.date
是datetime
對象的方法,不知道該怎麼做999
。以下是等價的:
In [8]: datetime.date(my_date)
Out[8]: datetime.date(2015, 5, 7)
In [9]: my_date.date()
Out[9]: datetime.date(2015, 5, 7)
如果導入datetime
模塊,你可以做你想做的,因爲date
也是一個類的名稱(表示日期,而不小時,分鐘等)
In [1]: import datetime
In [2]: datetime.date(2015, 5, 7) # OK, returns a date object
來源
2015-05-07 20:20:36
xnx
請發佈一個完整的,自包含的示例來演示此問題。我懷疑你實際上有'從datetime導入日期時間'。 – BrenBarn
我同意BrenBarn我可以重現錯誤,如果我'導入日期時間爲dt dt.datetime.date(2014年1月1日)' – EdChum