from datetime import datetime def validate(date_text: str): if not isinstance(date_text, str): return date_text ret = date_text for form in ["%d-%m-%Y", "%d/%m/%Y", "%m/%Y", "%m-%Y"]: try: ret_form = '%d.%m.%Y' if '%d' not in form: ret_form = ret_form.replace('%d.', '') ret = datetime.strptime(date_text, form).strftime(ret_form) except ValueError as err: pass return ret # def validate(date_text: str, return_format='%d.%m.%Y'): # try: # data = parse(date_text, dayfirst=True, ) # print(data.day) # return data.strftime(return_format) # except ValueError as err: # print("Incorrect data format", err) # return date_text if __name__ == '__main__': print(validate('2003-12-23')) # print(validate('2003-12-32')) print(validate('2003-12-23')) # print(parse('2003-12-32')) print(validate('23-12-2003')) print(validate('23/12/2003')) print(validate('12/23/2003')) print(validate('05/04/2003')) print(validate('04/2003'))