首页 > 解决方案 > Datetime 函数使用 datetime.strptime() 返回错误

问题描述

当我有正确的年月日期时,无法弄清楚为什么它会返回错误

from datetime import datetime

dates = ['2017  May  12th' ,'2016  December  22nd' ,'2016  Novermber  17th' 
         ,'2016  November  3rd' ,'2016  November  17th' ,'2017  May  12th'
         ,'2017  December  22nd' ,'2017  November  17th' ,'2017  November  3rd' ,
         '2017  November  17th' ,'2017  May  12th' ,'2018  December  22nd' ,'2018  November  17th' 
         ,'2018  November  3rd' ,'2018  November  17th' ,'2019  May  12th' ,'2019  December  22nd' ,
         '2019  November  17th' ,'2019  November  3rd' ,'2019  November  17th' ,'2020  October  31st']

dates.sort(key = lambda dates: datetime.strptime(dates, '%Y  %b  %d')) 

标签: python-3.x

解决方案


您的问题源于该语句datetime.striptime(dates, '%Y %b %d')引发错误,因为它无法正确解释这一天。为了轻松解决此问题,我将执行以下操作:

from dateutil import parser
from datetime import datetime

dates.sort(key = lambda dates: parser.parse(dates))

推荐阅读