Python strptime () - stringa all'oggetto datetime

In questo articolo imparerai a creare un oggetto datetime da una stringa (con l'aiuto di esempi).

Il strptime()metodo crea un oggetto datetime dalla stringa data.

Nota: non è possibile creare datetimeoggetti da ogni stringa. La stringa deve essere in un determinato formato.

Esempio 1: stringa in oggetto datetime

  from datetime import datetime date_string = "21 June, 2018" print("date_string =", date_string) print("type of date_string =", type(date_string)) date_object = datetime.strptime(date_string, "%d %B, %Y") print("date_object =", date_object) print("type of date_object =", type(date_object)) 

Quando esegui il programma, l'output sarà:

 date_string = 21 giugno 2018 tipo di date_string = date_object = 2018-06-21 00:00:00 tipo di date_object = 

Come funziona strptime ()?

Il strptime()metodo della classe accetta due argomenti:

  • stringa (che può essere convertita in datetime)
  • codice di formato

In base alla stringa e al codice di formato utilizzati, il metodo restituisce il suo datetimeoggetto equivalente .

Nell'esempio sopra:

Qui,

  • %d- Rappresenta il giorno del mese. Esempio: 01, 02,…, 31
  • %B- Nome completo del mese. Esempio: gennaio, febbraio ecc.
  • %Y- Anno in quattro cifre. Esempio: 2018, 2019 ecc.

Esempio 2: stringa all'oggetto datetime

  from datetime import datetime dt_string = "12/11/2018 09:15:32" # Considering date is in dd/mm/yyyy format dt_object1 = datetime.strptime(dt_string, "%d/%m/%Y %H:%M:%S") print("dt_object1 =", dt_object1) # Considering date is in mm/dd/yyyy format dt_object2 = datetime.strptime(dt_string, "%m/%d/%Y %H:%M:%S") print("dt_object2 =", dt_object2) 

Quando esegui il programma, l'output sarà:

 dt_object1 = 2018-11-12 09:15:32 dt_object2 = 2018-12-11 09:15:32 

Elenco codici formato

La tabella seguente mostra tutti i codici di formato che è possibile utilizzare.

Direttiva Senso Esempio
%a Nome abbreviato del giorno della settimana. Dom, lun, …
%A Nome completo del giorno della settimana. Domenica lunedì,…
%w Giorno della settimana come numero decimale. 0, 1,…, 6
%d Giorno del mese come decimale con riempimento zero. 01, 02,…, 31
%-d Giorno del mese come numero decimale. 1, 2,…, 30
%b Nome del mese abbreviato. Gennaio, febbraio, …, dicembre
%B Nome completo del mese. Gennaio febbraio,…
%m Mese come numero decimale con riempimento di zero. 01, 02,…, 12
%-m Mese come numero decimale. 1, 2, …, 12
%y Anno senza secolo come numero decimale con riempimento di zero. 00, 01,…, 99
%-y Anno senza secolo come numero decimale. 0, 1,…, 99
%Y Anno con secolo come numero decimale. 2013, 2019 ecc.
%H Ora (formato a 24 ore) come numero decimale con riempimento di zero. 00, 01,…, 23
%-H Ora (orologio a 24 ore) come numero decimale. 0, 1, …, 23
%I Ora (orologio a 12 ore) come numero decimale con riempimento di zero. 01, 02,…, 12
%-I Ora (orologio a 12 ore) come numero decimale. 1, 2,… 12
%p AM o PM delle impostazioni locali. AM PM
%M Minuto come numero decimale con riempimento di zero. 00, 01,…, 59
%-M Minuto come numero decimale. 0, 1,…, 59
%S Secondo come numero decimale con riempimento di zero. 00, 01,…, 59
%-S Secondo come numero decimale. 0, 1,…, 59
%f Microsecondo come numero decimale, riempito con zero a sinistra. 000000 - 999999
%z Scostamento UTC nel formato + HHMM o -HHMM.
%Z Nome del fuso orario.
%j Giorno dell'anno come numero decimale con riempimento zero. 001, 002,…, 366
%-j Giorno dell'anno come numero decimale. 1, 2, …, 366
%U Numero della settimana dell'anno (domenica come primo giorno della settimana). Tutti i giorni di un nuovo anno che precede la prima domenica sono considerati nella settimana 0. 00, 01,…, 53
%W Numero della settimana dell'anno (lunedì come primo giorno della settimana). Tutti i giorni di un nuovo anno che precede il primo lunedì sono considerati nella settimana 0. 00, 01,…, 53
%c Data e ora appropriate di Locale. Lun 30 settembre 07:06:05 2013
%x Rappresentazione della data appropriata di Locale. 30/09/13
%X Rappresentazione dell'ora appropriata di Locale. 07:06:05
%% Un carattere letterale "%". %

ValueError in strptime ()

Se la stringa (primo argomento) e il codice di formato (secondo argomento) passati a strptime()non corrispondono, otterrai ValueError. Per esempio:

  from datetime import datetime date_string = "12/11/2018" date_object = datetime.strptime(date_string, "%d %m %Y") print("date_object =", date_object) 

Se esegui questo programma, riceverai un errore.

 ValueError: i dati relativi all'ora '12 / 11/2018 'non corrispondono al formato'% d% m% Y ' 

Letture consigliate: Python strftime ()

Articoli interessanti...