Python检查日期格式失败

2024-03-29 15:50:56 发布

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

我的程序以以下形式接收数据:

LASTNAME|FIRSTNAME|GENDER|DOB

我要做的第一件事是使用正则表达式来检测分隔符并拆分字段。我允许空格、逗号或管道作为分隔符。我知道哪个字段是DOB,并且已经打印出来以确保我没有处理错误的字段。你知道吗

我的try代码如下:

try:
    #check if the fields are good
    fields = re.split(r'[ ,|]+', line)
except:
    #if not good: put it on the failure list
    flist.append(line.replace('\n', ''))

LastName  = fields[0]
FirstName = fields[1]
Gender    = fields[2]
DOB       = fields[3]

#one last try... make sure the DOB is good
try:
    datetime.datetime.strptime(DOB, '%m/%d/%Y')
except:
    flist.append(line.replace('\n', ''))
    raise ValueError("DATE NOT IN RIGHT FORMAT")

我给这个程序输入了多行代码,特别是我正在输入的代码:

NAME|FAKE|M|09/20/1987

ValueError: time data '09/20/1987' does not match format '%d/%m/%Y'

我已经打印出字段,并尝试将“DOB”转换为字符串。我也试过在结尾加上.date()。我真的不知道为什么会失败。你知道吗


Tags: the代码程序fieldsiflinenotreplace
1条回答
网友
1楼 · 发布于 2024-03-29 15:50:56

@jornsharpe是对的。您正在尝试将MM/DD/YYYY字符串解析为DD/MM/YYYY。如果所有日期的格式都相同,则应使用'%d/%m/%Y'作为格式字符串。你知道吗

相关问题 更多 >