2016-10-03 84 views
1

我想寫一個python腳本來比較兩個不同頁面的日期。一頁中的日期格式爲2016年10月3日,而其他頁面爲(10/3/2016)。我的目標是比較這兩個日期。我能夠將10月轉換爲10年,但不知道如何在10/3/2016完成。拆分和組合日期

回答

3

使用datetime模塊到您的字符串轉換爲datetime對象,然後比較兩者。例如:

>>> from datetime import datetime 
>>> date1 = datetime.strptime('Oct 03 2016', '%b %d %Y') 
>>> date2 = datetime.strptime('10/3/2016', '%m/%d/%Y') 
>>> date1 == date2 
True 

此外,您可以在此datetime對象使用datetime.strftime()轉換到您的自定義格式爲:

>>> date1.strftime('%d * %B * %Y') 
'03 * October * 2016' 

所有可用於格式化字符串的指令列表都可以在strftime聯繫我上文提到的。

+0

@Quadri我想用你的答案,但我得到一個錯誤「TypeError:必須是字符串,而不是列表」。我該怎麼辦?我試圖使用變量來代替日期** date1 = datetime.strptime(date,'%b%d%Y')** – user18160

+0

您需要作爲'date'傳遞的值應該是'str',但是根據你得到的錯誤,你傳遞了'list'類型的對象。 –

+0

確切的說,我該怎麼做?我的意思是我想要這樣的事情** date =「Oct 07 2016」date1 = datetime.strptime(date,'%b%d%Y')** – user18160

6

你應該真的在使用dateutil這個庫。

>>> import dateutil.parser 
>>> first_date = dateutil.parser.parse('Oct 03 2016') 
>>> second_date = dateutil.parser.parse('10/3/2016') 
>>> first_date 
datetime.datetime(2016, 10, 3, 0, 0) 
>>> second_date 
datetime.datetime(2016, 10, 3, 0, 0) 
>>> first_date == second_date 
True 
>>> 
+0

import dateutil向我顯示錯誤。 – user18160

+0

是的。你需要安裝它。 –

+1

@MoinuddinQuadri哎呀。是的,應該是'import dateutil.parser'。一旦我擺弄它,我通常會在shell中重新輸入所有內容,以便我可以輕鬆地複製和粘貼答案。 –