2013-10-28 72 views
1

我正在使用一些稍微不同的python日期時間樣式。問題是,我希望能夠將它們等同起來,但我不能。從數據庫,我收到日期時間,格式爲:等同於python日期時間

datetime.date(2010, 11, 15) 

其中,回來的時候,輸出:

2010-11-15 

然而,在我的結束,我需要把一些日期在CSV文件進入日期時間。我通過使用datetime.datetime.strptime包來做到這一點。所以,在這裏我的代碼看起來是這樣的:

date = '11/15/2010' #The format in the CSV file 
date = date.replace('/', ' ') 
date2 = datetime.datetime.strptime(date, '%m %d %Y') 

然而,DATE2,打印時,輸出:

2010-11-15 00:00:00 

而且,這兩個日期,但實際上相當於,不會當我把評估爲True它們之間有一個==。有沒有辦法使用datetime.datetime.strptime來排除小時,分鐘,秒?我想要符合第一個示例中使用的格式(我的數據庫)。謝謝

+0

這個問題可能會有幫助:http://stackoverflow.com/questions/7048828/how-can-i-parse-multiple-unknown-date-formats-in- python – Andy

+2

另外:爲什麼'str.replace()'?爲什麼不'datetime.strptime('%m /%d /%Y')'? –

+0

我喜歡它,我只是這樣做,因爲python文檔讓它們以空格分隔,從來沒有真正放過任何想法 –

回答

5

您試圖比較datetimedate。要比較它們,只需做:

date2.date() == datetime.date(2010,11,15) 

你應該沒問題。

多一點背景:

In [1]: import datetime 

In [2]: datetime.date.today() 
Out[2]: datetime.date(2013, 10, 28) 

In [3]: datetime.datetime.now() 
Out[3]: datetime.datetime(2013, 10, 28, 11, 5, 43, 997651) 

In [4]: datetime.datetime.now() == datetime.date.today() 
Out[4]: False 

In [5]: datetime.datetime.now().date() == datetime.date.today() 
Out[5]: True 
+0

完美,謝謝 –