我有这样的日期字符串:
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")
答案 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()