Python: conversione da stringa a datetime e il suo utilizzo

Con gli oggetti datetime è possibile eseguire calcoli con i dati relativi a informazioni temporali come l’aggiunta o la sottrazione di intervalli di tempo. La conversione da stringhe a oggetti datetime ha un ruolo centrale nella strutturazione, nell’analisi e nella rappresentazione di dati temporali nella programmazione in Python.

Come funziona la conversione da stringa a datetime in Python

La conversione da stringa a datetime in Python è un processo di trasformazione di una stringa di testo, contenente una rappresentazione di data e/o ora, in un oggetto datetime. Datetime è una struttura di dati in Python che permette di rappresentare e manipolare informazioni su data e ora. La conversione da stringa a datetime può essere necessaria quando stai lavorando in Python con informazioni su data e ora sotto forma di sequenze di caratteri.

Le informazioni vengono quindi convertite in un formato utilizzabile, ad esempio per eseguire calcoli, confrontare le date o formattare i dati temporali. Anche i metodi di formattazione delle stringhe per la concatenazione di espressioni possono esserti utili per lavorare con gli oggetti datetime.

Il tuo web hosting come mai prima d'ora
  • Certificato SSL e protezione DDoS
  • Velocità, flessibilità e scalabilità
  • Dominio e consulente personale
  • 1 anno gratis del gestionale di fatturazione elettronica FlexTax

Conversione da stringhe a oggetti datetime

La conversione da stringhe a datetime in Python comprende diverse funzioni e moduli, ad esempio la libreria datetime e il metodo strptime(), con cui trasformare le stringhe in oggetti datetime e viceversa.

Utilizzo di strptime()

Il metodo strptime() (String Parse Time) della libreria datetime serve a convertire una stringa in un oggetto datetime di Python. Sono necessari due argomenti: la stringa da analizzare e il formato data/ora della stringa.

datetime.strptime(date_string, format)
python

datetime.datetime()

Il metodo strptime() permette di convertire una stringa in un oggetto datetime.datetime tenendo conto di un determinato formato di data/ora.

from datetime import datetime
date_string = '2023-10-30 12:00:00'
date_object = datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')
print(date_object) # Output: 2023-10-30 12:00:00
python

In questo esempio, date_string è indicata come '2023-10-30 12:00:00', mentre il formato '%Y-%m-%d %H:%M:%S' definisce l’ordine e l’aspetto della data e dell’ora nella stringa. Il metodo strptime() analizza la stringa in base a questo formato e ne genera un oggetto datetime.datetime, che viene quindi memorizzato nella variabile date_object.

Il significato degli elementi nel formato '%Y-%m-%d %H:%M:%S' è il seguente:

  • %Y: numero dell’anno a quattro cifre
  • %m: numero del mese a due cifre
  • %d: numero del giorno a due cifre
  • %H: ora (formato a 24 ore)
  • %M: minuto
  • %S: secondo

datetime.time()

La conversione di stringhe in un oggetto datetime.time ti permette di visualizzare gli orari senza data. A tal fine puoi utilizzare il metodo strptime() della classe datetime oppure suddividere la stringa di un orario in ore, minuti e secondi.

from datetime import datetime
time_string = '14::30::00'
time_object = datetime.strptime(time_string, '%H::%M::%S').time()
print(time_object) # Output: 14:30:00
python

'%H:%M:%S' sta per il formato ore:minuti:secondi. Il metodo strptime() interpreta la stringa temporale in base a questo formato e ne genera un oggetto datetime.time.

datetime.date()

È anche possibile convertire una stringa in un oggetto datetime.date per mezzo del metodo strptime() della classe datetime oppure suddividendo manualmente la stringa della data in anno, mese e giorno.

from datetime import datetime
date_string = '2023-11-30'
date_object = datetime.strptime(date_string, '%Y-%m-%d').date()
print(date_object) # Output: 2023-11-30
python

'%Y-%m-%d' è il formato anno-mese-giorno. Il metodo strptime() analizza la stringa della data e crea un oggetto datetime.date.

Risoluzione degli errori di strptime()

Utilizzando il metodo strptime() per la conversione da stringa a datetime in Python potresti imbatterti in alcuni errori, in particolare se il formato indicato non corrisponde al formato della stringa immessa. Qui trovi alcuni degli errori più comuni e le possibili soluzioni:

  • ValueError: time data '...' does not match format '...': questo errore si presenta quando la stringa immessa non corrisponde al formato indicato. Assicurati di utilizzare il modello di formato corretto in strptime().

  • ValueError: unconverted data remains: questo errore compare quando rimangono dei dati non ancora interpretati dopo l’elaborazione della stringa. Verifica il modello del formato per assicurarti che tutte le parti della stringa immessa siano comprese nel formato.

  • TypeError: strptime() argument 1 must be str, not ...: questo problema può verificarsi quando il parametro assegnato a strptime() non è una stringa. Controlla che il valore assegnato sia una stringa contenente il formato data/ora.

Inoltre devi controllare che il modello del formato interpreti correttamente tutte le parti della stringa immessa (anno, mese, giorno, ora, ecc.). Considera quindi le possibili differenze tra i caratteri separatori, l’uso di maiuscole e/o minuscole, e altri dettagli tra il modello del formato e la stringa immessa.

Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top