在python中解析日期的优雅方式

mar*_*cho 2 python

我想从字符串中解析日期.这个字符串可以包含不同的格式,我事先并不知道.

from datetime import datetime

try:
    return datetime.strptime(text, '%m/%d/%Y'))
except:
    try:
        return datetime.strptime(text, '%m/%d/%y')) 
    except:
        try:
            return datetime.strptime(text, '%Y/%m/%d'))
        except:
            try:
                return datetime.strptime(text, '%b%d/%Y'))
            except:
                return None
Run Code Online (Sandbox Code Playgroud)

显然,这看起来太冗长了.我确信有更好的方式使用地图,但我真的很想听听你的意见 - 我讨厌重新发明轮子.

Jon*_*röm 6

from datetime import datetime

def getdate(text):
    formats = ('%m/%d/%Y', '%m/%d/%y', '%Y/%m/%d', '%b%d/%Y')
    for format in formats:
        try:
            return datetime.strptime(text, format)
        except:
            pass
Run Code Online (Sandbox Code Playgroud)