将字符串转换为日期某些值缺少python

时间:2016-08-11 05:35:58

标签: python string date

我希望能够在python中将字符串转换为日期格式。但有些日期和月份被分配到00。

date = ['00-00-2001', '10-01-2014']

当我尝试时:

datetime.strptime(date[1], '%d-%m-%Y'),当然它运作正常, 但是datetime.strptime(date[0], '%d-%m-%Y'),我得到以下错误。

  

时间数据' 00-2001'不匹配格式'%d-%m-%Y'

2 个答案:

答案 0 :(得分:1)

根据Python Docs

  

%d作为零填充十进制数的月份日期。 01,02,...,31

     

%m月份为零填充十进制数。 01,02,...,12

这些都不接受00作为有效字符串。

另请参阅我在https://stackoverflow.com/a/38801552/1005215的回答,其中说明了如何通过传递默认参数来使用parser中的dateutil

答案 1 :(得分:0)

执行:

corrected_date = []
for d in dates:
    components = d.split('-')
    components = [str(c).zfill(2) if(int(c) > 0) else str(int(c) + 1).zfill(2) for c in components]
    corrected_date.extend(['-'.join(components)])

现在在strftime上尝试corrected_date