将多种日期格式解析为特定表单

2024-04-25 17:03:56 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的应用程序中,用户可以以dd/mm/yy格式输入日期,并使用日期分隔符变体(就像他们可以使用/、-或空格作为分隔符)。他们也可以输入4位数字的年份或2位数字的年份,也可以输入3位字母的月份代码或2位数字的月份代码。从用户那里得到日期后,我想验证该格式是否为有效的日期格式,然后将其转换为“%d-%b-%Y”。在下面的函数中,我正在验证日期格式,但我不确定如何处理所有混合的日期分隔符格式,如01/12 2013、01-12 13、01-12/2013等。可以加载这些格式

def validate_date(date_str):
    formats = ['%d-%b-%Y', '%d-%b-%y', '%d-%m-%Y', '%d-%m-%y',
               '%d/%m/%Y', '%d/%m/%y', '%d/%b/%Y', '%d/%b/%y',
               '%d %m %Y', '%d %m %y', '%d %b %Y', '%d %b %y',
                '%d%m%Y', '%d%b%y', '%d%b%Y', '%d %b/%Y'] 
    data = None

    for fmt in formats:
        try:
            dateValue = datetime.datetime.strptime(date_str, fmt).date()
            data = dateValue
            break
        except ValueError:
            pass

    if data is None:
    # invalid date format

Tags: 代码用户nonedatadatetimedate格式数字