2016-10-03 114 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中重新输入所有内容,以便我可以轻松地复制和粘贴答案。 –