from datetime import datetime def normalizza_data(data_string: str)->str: """ Normalizza una stringa di data al formato YYYY-MM-DD, provando diversi formati di input. Args: data_string (str): La stringa di data da normalizzare. Returns: str: La data normalizzata nel formato YYYY-MM-DD, o None se la stringa non può essere interpretata come una data. """ formato_desiderato = "%Y-%m-%d" formati_input = ["%Y/%m/%d", "%Y-%m-%d", "%d-%m-%Y","%d/%m/%Y", ] # Ordine importante: prova prima il più probabile for formato_input in formati_input: try: data_oggetto = datetime.strptime(data_string, formato_input) return data_oggetto.strftime(formato_desiderato) except ValueError: continue # Prova il formato successivo se quello attuale fallisce return None # Se nessun formato ha avuto successo def normalizza_orario(orario_str): try: # Prova prima con HH:MM:SS dt = datetime.strptime(orario_str, "%H:%M:%S") return dt.strftime("%H:%M:%S") except ValueError: try: # Se fallisce, prova con HH:MM dt = datetime.strptime(orario_str, "%H:%M") return dt.strftime("%H:%M:%S") except ValueError: return orario_str # Restituisce originale se non parsabile