Come convertire una stringa in datario in Python
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)
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn FacebookArticolo correlato - Python String
- Come controllare una stringa è vuota in modo pitonico
- Converti una stringa in nome variabile in Python
- Come rimuovere gli spazi bianchi in una stringa in Python
- Estrai numeri da una stringa in Python
- Come convertire una stringa in minuscola in Python 2 e 3