Python将异常日期字符串转换为日期时间格式

时间:2017-05-04 14:58:06

标签: python datetime

我有这样的日期字符串:

Saturday, 30 Nov, 2013

所以它就像Day_Name, Day, Month_Name_3_Letters, Year

我想知道使用python将它转换为datetime格式的最佳方法是什么?

我这样使用:

datetime.strptime((row[7].split(',')[1] + row[7].split(',')[2]).replace(' ',''), "%d%b%Y").strftime("%Y-%m-%d")

4 个答案:

答案 0 :(得分:4)

使用strptime

 import datetime as dt
 s = 'Saturday, 30 Nov, 2013'
 d = dt.datetime.strptime(s,'%A, %d %b, %Y')

结果:

>>> d
datetime.datetime(2013, 11, 30, 0, 0)

正如您将从参考文献中看到的那样:

%A    Weekday as locale’s full name.
%d    Day of the month as a zero-padded decimal number.
%b    Month as locale’s abbreviated name.
%Y    Year with century as a decimal number.

答案 1 :(得分:3)

您可以使用strptime功能并将其初始化为以下内容:

from datetime import datetime

datetime_object = datetime.strptime('Saturday, 30 Nov, 2013', '%A, %d %b, %Y')

print datetime_object
  

相反,datetime.strptime()类方法创建日期时间   表示日期和时间的字符串中的对象和对应的   格式字符串。日期时间

为了了解如何使用这些格式以及何时使用,您可以看到strftime formats

答案 2 :(得分:3)

为什么不使用dateutil的解析?

from dateutil import parser
parser.parse('Saturday, 30 Nov, 2013')
datetime.datetime(2013, 11, 30, 0, 0)

答案 3 :(得分:2)

from datetime import datetime

st='Saturday, 30 Nov, 2013'
print datetime.strptime(st,'%A, %d %b, %Y')

<强>输出

2013-11-30 00:00:00

请参阅教程点的strptime()