from datetime import datetime as dt def str_to_datetime(s: str) -> dt: s = s.strip() try: return dt.strptime(s, '%d.%m.%y %H:%M') except ValueError: pass try: tim = dt.strptime(s, '%H:%M').time() dat = dt.now().date() return dt.combine(dat, tim) except ValueError: pass raise ValueError("The given string can not be interpreted as a datetime.")