且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

将Python日期格式转换为英国

更新时间:2023-11-29 12:54:10

您可以使用Try-Parse-Else-Approach:

You could use a Try-Parse-Else-Approach:

from datetime import datetime

def normalizeDateString(ds):
    '''normalizes a date of format "d / d / dddd " to "dd/dd/dddd"'''
    sp = ds.replace(" ","").split("/")
    if len(sp[0])==1:
        sp[0]="0"+sp[0]
    if len(sp[1])==1:
        sp[1]="0"+sp[1]

    return sp[0]+"/"+sp[1]+"/"+sp[2]

def parseDT(dateString):
    ''' parses "dd/dd/yyyy" as US (month/day/year). Fallback: day/month/year on error'''
    try:
        repl =  normalizeDateString(dateString)        
        return datetime.strptime(repl, "%m/%d/%Y").date()
    except:
        return datetime.strptime(repl, "%d/%m/%Y").date()


print(parseDT("14/12/2018"))
print(parseDT("2/5/2018")) # ok for US
print(parseDT("22/5/2018")) # not ok for US
print(parseDT("12/2/2018"))
print(parseDT("2/1/2018"))

输出:

2018-12-14
2018-02-05  # US ok
2018-05-22  # EN by except
2018-12-02
2018-02-01

HTH