无论格式如何都创建日期变量

时间:2014-03-07 09:25:54

标签: python python-2.7

我有这样的字符串:

3/11/2014
3 January 2014
3rd 11 2014
3th January 2014

我是否可以从这些字符串中创建日期变量?

我知道

我可以使用格式的字符串制作日期变量,如下所示:

datetime.strptime("3-11-2014","%d-%m-%Y").date()

我的问题

日期格式为未知

所以有时它是3/11/2014,有一次它是3-11-2014,有一次它是3th janary 2014

1 个答案:

答案 0 :(得分:3)

使用dateutil的parse功能:

In [217]:

dates=['3/11/2014',
'3 January 2014',
'3rd 11 2014',
'3th January 2014']

import dateutil as dt
In [218]:

for date in dates:
    print(dt.parser.parse(date))
2014-03-11 00:00:00
2014-01-03 00:00:00
2014-03-11 00:00:00
2014-01-03 00:00:00

对于您知道年份或日期是第一个的情况,您可以设置参数yearfirst=Truedayfirst=True,这假设此约定始终保持,否则则无法消除日期的歧义