Con gli oggetti datetime è possibile eseguire calcoli con i dati relativi a in­for­ma­zio­ni temporali come l’aggiunta o la sot­tra­zio­ne di in­ter­val­li di tempo. La con­ver­sio­ne da stringhe a oggetti datetime ha un ruolo centrale nella strut­tu­ra­zio­ne, nell’analisi e nella rap­pre­sen­ta­zio­ne di dati temporali nella pro­gram­ma­zio­ne in Python.

Come funziona la con­ver­sio­ne da stringa a datetime in Python

La con­ver­sio­ne da stringa a datetime in Python è un processo di tra­sfor­ma­zio­ne di una stringa di testo, con­te­nen­te una rap­pre­sen­ta­zio­ne di data e/o ora, in un oggetto datetime. Datetime è una struttura di dati in Python che permette di rap­pre­sen­ta­re e ma­ni­po­la­re in­for­ma­zio­ni su data e ora. La con­ver­sio­ne da stringa a datetime può essere ne­ces­sa­ria quando stai lavorando in Python con in­for­ma­zio­ni su data e ora sotto forma di sequenze di caratteri.

Le in­for­ma­zio­ni vengono quindi con­ver­ti­te in un formato uti­liz­za­bi­le, ad esempio per eseguire calcoli, con­fron­ta­re le date o for­mat­ta­re i dati temporali. Anche i metodi di for­mat­ta­zio­ne delle stringhe per la con­ca­te­na­zio­ne di espres­sio­ni possono esserti utili per lavorare con gli oggetti datetime.

Web Hosting
Diventa il n°1 della rete con il provider di hosting n°1 in Europa
  • Di­spo­ni­bi­li­tà garantita al 99,99%
  • Dominio, SSL ed e-mail inclusi
  • As­si­sten­za 24/7 in lingua italiana

Con­ver­sio­ne da stringhe a oggetti datetime

La con­ver­sio­ne da stringhe a datetime in Python comprende diverse funzioni e moduli, ad esempio la libreria datetime e il metodo strptime(), con cui tra­sfor­ma­re le stringhe in oggetti datetime e viceversa.

Utilizzo di strptime()

Il metodo strptime() (String Parse Time) della libreria datetime serve a con­ver­ti­re una stringa in un oggetto datetime di Python. Sono necessari due argomenti: la stringa da ana­liz­za­re e il formato data/ora della stringa.

datetime.strptime(date_string, format)
python

datetime.datetime()

Il metodo strptime() permette di con­ver­ti­re una stringa in un oggetto datetime.datetime tenendo conto di un de­ter­mi­na­to 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 me­mo­riz­za­to nella variabile date_object.

Il si­gni­fi­ca­to 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 con­ver­sio­ne di stringhe in un oggetto datetime.time ti permette di vi­sua­liz­za­re gli orari senza data. A tal fine puoi uti­liz­za­re il metodo strptime() della classe datetime oppure sud­di­vi­de­re 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() in­ter­pre­ta la stringa temporale in base a questo formato e ne genera un oggetto datetime.time.

datetime.date()

È anche possibile con­ver­ti­re una stringa in un oggetto datetime.date per mezzo del metodo strptime() della classe datetime oppure sud­di­vi­den­do ma­nual­men­te 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.

Ri­so­lu­zio­ne degli errori di strptime()

Uti­liz­zan­do il metodo strptime() per la con­ver­sio­ne da stringa a datetime in Python potresti im­bat­ter­ti in alcuni errori, in par­ti­co­la­re se il formato indicato non cor­ri­spon­de 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 cor­ri­spon­de al formato indicato. As­si­cu­ra­ti di uti­liz­za­re il modello di formato corretto in strptime().

  • ValueError: unconverted data remains: questo errore compare quando rimangono dei dati non ancora in­ter­pre­ta­ti dopo l’ela­bo­ra­zio­ne della stringa. Verifica il modello del formato per as­si­cu­rar­ti che tutte le parti della stringa immessa siano comprese nel formato.

  • TypeError: strptime() argument 1 must be str, not ...: questo problema può ve­ri­fi­car­si quando il parametro assegnato a strptime() non è una stringa. Controlla che il valore assegnato sia una stringa con­te­nen­te il formato data/ora.

Inoltre devi con­trol­la­re che il modello del formato in­ter­pre­ti cor­ret­ta­men­te tutte le parti della stringa immessa (anno, mese, giorno, ora, ecc.). Considera quindi le possibili dif­fe­ren­ze tra i caratteri se­pa­ra­to­ri, l’uso di maiuscole e/o minuscole, e altri dettagli tra il modello del formato e la stringa immessa.

Vai al menu prin­ci­pa­le