将不同的日期格式字符串转换为datetime格式

时间:2018-06-13 05:35:42

标签: python

我有一个日期列,其日期格式不同

publish_date = ["Feb. 2, 2000", "June 4, 1989", "Mar. 13, 2018"]

我使用strptime()转换一种类型的字符串,如何在同一列中转换多种日期格式?

type 1: %b %d, %Y

type 2: %B %d, %Y

2 个答案:

答案 0 :(得分:2)

您可以使用第三方dateparser module

使用pip install dateparser安装,然后

>>> import dateparser
>>> publish_date = ["Feb. 2, 2000", "June 4, 1989", "Mar. 13, 2018"]
>>> for d in publish_date:
...     print(dateparser.parse(d))
... 
2000-02-02 00:00:00
1989-06-04 00:00:00
2018-03-13 00:00:00

dateparser接受多种格式,但如果您愿意,可以将其限制为您感兴趣的格式

>>> for d in publish_date:
...     print(dateparser.parse(d, date_formats=['%b %d, %Y', '%B %d, %Y']))
... 
2000-02-02 00:00:00
1989-06-04 00:00:00
2018-03-13 00:00:00

答案 1 :(得分:2)

您还可以使用 dateutil

<强>演示:

from dateutil.parser import parse 
publish_date = ["Feb. 2, 2000", "June 4, 1989", "Mar. 13, 2018"]
for date in publish_date:
    print( parse(date) )

<强>输出:

2000-02-02 00:00:00
1989-06-04 00:00:00
2018-03-13 00:00:00