在字符串中标识日期格式 - Python

时间:2015-11-28 17:38:21

标签: python string datetime

我试图确定哪个是日期格式,只考虑两个选项%Y-%m和%Y-%m-%d。

如果它是Y-m或Y-m-d就可以了。问题是我想在格式既不是其中之一的情况下插入错误句子,如下所示:

date='2014-01asd'

def date_format(date):  
    try:  
        datetime.datetime.strptime(date, '%Y-%m')  
        return 1  
    except ValueError:  
        datetime.datetime.strptime(date, '%Y-%m-%d')  
        return 2  
    except:  
        return 'Wrong date format you dweezle! Must be YYYY-MM or YYYY-MM-DD'

但显然不可能使用两个"例外"按顺序。 有人帮忙吗?

1 个答案:

答案 0 :(得分:2)

您需要在此处嵌套def date_format(date): try: datetime.datetime.strptime(date, '%Y-%m') return 1 except ValueError: try: datetime.datetime.strptime(date, '%Y-%m-%d') return 2 except ValueError: return 'Wrong date format you dweezle! Must be YYYY-MM or YYYY-MM-DD' 语句:

return

虽然你可以把它们串联起来,但是如果成功的话,第一个pass就不可能了;拥有第一个异常处理程序def date_format(date): try: datetime.datetime.strptime(date, '%Y-%m') return 1 except ValueError: pass try: datetime.datetime.strptime(date, '%Y-%m-%d') return 2 except ValueError: return 'Wrong date format you dweezle! Must be YYYY-MM or YYYY-MM-DD'

scikit-learn