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
