首页 > 解决方案 > Python 日期时间模式匹配

问题描述

我正在尝试根据不同格式的列表来确定是否可以将字符串转换为日期。因此,必须循环整个列表。如果找到匹配项,则应返回该匹配项。如果所有尝试都返回错误,则应返回该错误。我不太确定如何做到这一点,我的方法可以在下面看到。

_DEFAULT_PATTERNS = ["%d.%m.%Y", "%y-%m-%d"]
try:
    if format == 'default':
        for p in _DEFAULT_PATTERNS:
        try:
            value = datetime.strptime(value, p).date()
        except:
            continue
except Exception:
    return ERROR

return value

标签: pythondatetime

解决方案


尝试这样的事情:

from datetime import datetime
_DEFAULT_PATTERNS = ["%d.%m.%Y", "%y-%m-%d"]
def is_castable_to_date(value):
    for p in _DEFAULT_PATTERNS:
        try:
            value = datetime.strptime(value, p).date()
            return True
        except:
            pass
    return False
print is_castable_to_date("12-12-12")
print is_castable_to_date("12.12.12")
print is_castable_to_date("12/12/12")

推荐阅读