Come analizzare una stringa in un Datetime in Python (strptime)
Scopri come convertire stringhe in oggetti datetime in Python. Padroneggia il metodo strptime, analizza le stringhe di date, gestisci i fusi orari e previeni errori di formato.
Panoramica
Quando crei applicazioni che elaborano l'invio di moduli utente, analizzano database Web, analizzano registri di server o importano fogli CSV, riceverai spesso informazioni su data e ora come stringhe di testo non elaborate (ad esempio, `"2026-05-25 15:45"`). Poiché non è possibile eseguire calcoli, operazioni aritmetiche sulle date o ordinamenti sulle stringhe, è necessario analizzarli in oggetti datetime Python.
Il metodo principale per questa conversione è "datetime.strptime(date_string, format_string)". Il nome sta per "string parse time". La funzione accetta la stringa della data grezza e un modello di formato contenente direttive (come `%Y` per l'anno, `%m` per il mese e `%d` per il giorno) e restituisce un oggetto datetime corrispondente.
Se la stringa di input non corrisponde esattamente al modello di formato fornito, Python solleva un `ValueError`. Per evitare arresti anomali, racchiudi sempre le operazioni `strptime()` in un blocco `try-Exception`. Per le applicazioni che analizzano input di date diversi e non strutturati, librerie esterne come `python-dateutil` possono aiutare ad automatizzare il rilevamento del parser.
Codice e output di esecuzione
Questo script illustra l'analisi delle stringhe di data utilizzando datetime.strptime, la gestione di input non validi e il calcolo delle differenze di data.
from datetime import datetime
# 1. Basic parsing using strptime
date_str = "2026-05-25 18:30:00"
format_template = "%Y-%m-%d %H:%M:%S"
parsed_date = datetime.strptime(date_str, format_template)
print("Parsed DateTime:", parsed_date)
print("Month parsed:", parsed_date.month)
print("Hour parsed:", parsed_date.hour)
# 2. Handling parse errors safely
bad_date_str = "25/05/2026"
try:
datetime.strptime(bad_date_str, "%Y-%m-%d")
except ValueError as e:
print(f"\nParse Error: {e}")
# Correcting the format
corrected_date = datetime.strptime(bad_date_str, "%d/%m/%Y")
print("Corrected Parse:", corrected_date.date())Parsed DateTime: 2026-05-25 18:30:00
Month parsed: 5
Hour parsed: 18
Parse Error: time data '25/05/2026' does not match format '%Y-%m-%d'
Corrected Parse: 2026-05-25Implementazione passo dopo passo
- Importa la classe datetime dal modulo datetime.
- Identifica la struttura esatta della stringa della data (ad esempio, giorno, mese, separatori).
- Chiama datetime.strptime(date_string, format_pattern) con le direttive appropriate (come %Y, %m, %d).
- Racchiudi l'istruzione di analisi in un blocco try-eccetto ValueError per gestire correttamente le stringhe con formato errato.
Domande frequenti
Qual è la differenza tra strftime e strptime?
strptime (string parse time) analizza una stringa per creare un oggetto datetime. strftime (formato stringa ora) formatta un oggetto datetime in una rappresentazione di stringa leggibile.
Come posso analizzare le stringhe di data ISO 8601 (ad esempio, "2026-05-25T18:30:00Z")?
InPython 3.7+, puoi utilizzare la funzione integrata datetime.fromisoformat(string), che gestisce le stringhe ISO in modo efficiente senza richiedere un modello di formato manuale.
Argomenti correlati
Scopri come ottenere la data e l'ora correnti in Python utilizzando il modulo datetime. Formatta le date in stringhe con strftime e gestisce i fusi orari.
Come convertire String in Int in PythonScopri come convertire una stringa in un numero intero in Python utilizzando la funzione int(). Gestisci gli errori in modo sicuro e converti i numeri da binario, ottale o esadecimale.
Risorse Python consigliate
Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.
Stringhe Python
Padroneggiare la manipolazione delle stringhe in Python. Scopri metodi di stringa, sezioni, concatenazione e tecniche di formattazione con esempi di codice chiari ed eseguibili.
Foglio informativo sui metodi delle stringhe Python
Una guida di riferimento completa per la manipolazione delle stringhe Python. Padroneggia la formattazione, la ricerca, la divisione, la sostituzione e il controllo delle proprietà delle stringhe.
Decoratori Python e modello di progettazione del decoratore: le differenze chiave
Confronta i decoratori Python e il modello di progettazione del decoratore classico. Comprendere le differenze tra il wrapper di funzioni in fase di definizione e la composizione di oggetti dinamici di runtime con codice eseguibile.