Come convertire una stringa in datario in Python

  1. datetime.strptime() per convertire la stringa in datetime
  2. Python datetime.strptime() Esempi

Questo tutorial introduce come convertire la string in datetime in Python ed elenca anche alcuni codici di esempio per coprire i popolari formati di string datetime.

datetime.strptime() per convertire la stringa in datetime

Nel precedente tutorial, abbiamo imparato come ottenere l’ora della data in formato stringa usando il metodo datetime.strftime(). Useremo il metodo datetime.strptime() per fare la conversione di revere per ottenere l’oggetto datetime. f e p in questi due metodi significano rispettivamente format e parse.

Il metodo datetime.strptime() analizza la stringa di input con il dato formato datetime e restituisce l’oggetto datetime.

L’esempio di base per usare questo metodo strptime() è mostrato di seguito,

from datetime import datetime

datetime.strptime("2018-01-31", "%Y-%m-%d")

Il risultato sarà

datetime.datetime(2018, 1, 31, 0, 0)

Le direttive dei codici di formato stringa sono elencate qui per il vostro riferimento

Direttiva Significato Esempio
%a Giorno feriale come nome abbreviato del locale. Sole, lun, …, sab (en_US);Quindi, lun, …, sa (de_DE)
%A Giorno feriale come nome completo del locale. Domenica, lunedì, …, sabato (en_US);Sonntag, Montag, …, Samstag (de_DE)
%w Il giorno della settimana come numero decimale, dove 0 è la domenica e 6 è il sabato. 0, 1, …, 6
%d Giorno del mese come numero decimale a zero. 01, 02, …, 31
%b Mese come nome abbreviato del locale. Jan, Feb, …, Dec (it_US);Jan, Feb, …, Dez (de_DE)
%B Mese come nome completo del locale. Gennaio, febbraio, …, dicembre (it_US);gennaio, febbraio, …, febbraio, …, dicembre (de_DE)
%m Mese come numero decimale a zero. 01, 02, …, 12
%y Anno senza secolo come numero decimale a zero. 00, 01, …, 99
%Y Anno con il secolo come numero decimale. 0001, 0002, …, 2013, 2014, …, 9998, 9999
%H Ora (orologio 24 ore) come numero decimale a zero. 00, 01, …, 23
%I Ora (orologio a 12 ore) come numero decimale a zero. 01, 02, …, 12
%p L’equivalente locale di AM o PM. AM, PM (en_US);am, pm (de_DE)
%M Minuto come numero decimale a zero. 00, 01, …, 59
%S Secondo come numero decimale a zero. 00, 01, …, 59
%f Microsecondo come numero decimale, con riempimento a sinistra a zero. 000000, 000001, …, 999999
%z Offset UTC nella forma ±HHHMM[SS] (stringa vuota se l’oggetto è ingenuo). (vuoto), +0000, -0400, +1030
%Z Nome del fuso orario (stringa vuota se l’oggetto è ingenuo). (vuoto), UTC, EST, CST
%j Giorno dell’anno come numero decimale a zero. 001, 002, …, 366
%U Numero della settimana dell’anno (domenica come primo giorno della settimana) come numero decimale imbottito zero. Tutti i giorni di un nuovo anno che precedono la prima domenica sono considerati nella settimana 0. 00, 01, …, 53
%W Numero della settimana dell’anno (lunedì come primo giorno della settimana) come numero decimale. Tutti i giorni di un nuovo anno che precedono il primo lunedì sono considerati nella settimana 0. 00, 01, …, 53
%c Rappresentazione della data e dell’ora appropriate di Locale. Mar 16 agosto 21:30:00 1988 (it_US);Di 16 agosto 21:30:00 1988 (de_DE)
%x La rappresentazione della data appropriata di Locale. 08/16/88 (Nessuna);08/16/1988 (it_US);16.08.1988 (de_DE)
%X La rappresentazione temporale appropriata di Locale. 21:30:00 (it_US);21:30:00 (de_DE)
%% Un carattere letteralmente “%”. %

Python datetime.strptime() Esempi

Formato 7-May-2013

from datetime import datetime

dateString = "7-May-2018"
dateFormatter = "%u-%b-%Y"
datetime.strptime(dateString, dateFormatter)

Uscita

datetime.datetime(2013, 5, 1, 0, 0)

Formato 31/12/2018

from datetime import datetime

dateString = "31/12/2013"
dateFormatter = "%d/%m/%Y"
datetime.strptime(dateString, dateFormatter)

Uscita

datetime.datetime(2013, 12, 31, 0, 0)

Formato Mon, July 16 2018

from datetime import datetime

dateString = "31/12/2013"
dateFormatter = "%d/%m/%Y"
datetime.strptime(dateString, dateFormatter)

Uscita

datetime.datetime(2018, 7, 16, 0, 0)

Formato Monday, July 16, 2018 20:01:56

from datetime import datetime

dateString = "Monday, July 16, 2018 20:01:56"
dateFormatter = "%A, %B %d, %Y %H:%M:%S"
datetime.strptime(dateString, dateFormatter)

Uscita:

datetime.datetime(2018, 7, 16, 20, 1, 56)

Articolo correlato - Python String

  • Come convertire una stringa in minuscola in Python 2 e 3
  • Rimuovi i numeri dalla stringa in Python
  • Articolo correlato - Python DateTime

  • Confronta due date in Python
  • Converti Epoch in Datetime in Python