我有以下格式的日期列表: dates = [' 28 / May / 2012',' 30 / Jul / 2012',' 2 / Jul / 2012']
我可以使用:
将日期[0]转换为日期时间xdates = []
for i in dates:
dates_formatted = i.translate(None, '/')
d = datetime.strptime(dates_formatted, '%d%B%Y')
xdates.append(d)
xdates
然而,当它到达我名单上的第二个项目" 30 / Jul / 2012"它并不喜欢它。我假设它期待" 7月"而不是" jul"?
" ValueError:时间数据' 2012年7月30日'不符合格式'%d%B%Y'"
如果是这样,有什么好的方法吗?或者我是否必须用7月的每个项目替换每个项目? (或者我完全错了!)
非常感谢任何帮助/建议!
答案 0 :(得分:5)
%B
是月份的全名。缩写名称为%b
。这有效:
d = datetime.strptime(dates_formatted, '%d%b%Y')
对这些格式的一个非常有用的参考是http://strftime.org/。