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 se una stringa è vuota in un modo pythonico
- 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