In questo articolo imparerai a convertire gli oggetti data, ora e datetime nella sua stringa equivalente (con l'aiuto di esempi)
Il strftime()
metodo restituisce una stringa che rappresenta la data e l'ora utilizzando l'oggetto data, ora o datetime.
Esempio 1: datetime su stringa utilizzando strftime ()
Il programma seguente converte un datetime
oggetto contenente la data e l'ora correnti in diversi formati di stringa.
from datetime import datetime now = datetime.now() # current date and time year = now.strftime("%Y") print("year:", year) month = now.strftime("%m") print("month:", month) day = now.strftime("%d") print("day:", day) time = now.strftime("%H:%M:%S") print("time:", time) date_time = now.strftime("%m/%d/%Y, %H:%M:%S") print("date and time:",date_time)
Quando esegui il programma, l'output sarà qualcosa del tipo:
anno: 2018 mese: 12 giorno: 24 ora: 04:59:31 data e ora: 12/24/2018, 04:59:31
Qui anno, giorno, ora e data_ora sono stringhe, mentre adesso è un datetime
oggetto.
Come funziona strftime ()?
Nel programma precedente, %Y
, %m
, %d
ecc sono codici di formato. Il strftime()
metodo accetta uno o più codici di formato come argomento e restituisce una stringa formattata basata su di esso.
- Abbiamo importato la
datetime
classe daldatetime
modulo. È perché l'oggetto delladatetime
classe può accedere alstrftime()
metodo. - L'
datetime
oggetto contenente la data e l'ora correnti viene memorizzato nella variabile now. - Il
strftime()
metodo può essere utilizzato per creare stringhe formattate. - La stringa passata al
strftime()
metodo può contenere più di un codice di formato.
Esempio 2: creazione di una stringa da un timestamp
from datetime import datetime timestamp = 1528797322 date_time = datetime.fromtimestamp(timestamp) print("Date time object:", date_time) d = date_time.strftime("%m/%d/%Y, %H:%M:%S") print("Output 2:", d) d = date_time.strftime("%d %b, %Y") print("Output 3:", d) d = date_time.strftime("%d %B, %Y") print("Output 4:", d) d = date_time.strftime("%I%p") print("Output 5:", d)
Quando esegui il programma, l'output sarà:
Oggetto data e ora: 2018-06-12 09:55:22 Uscita 2: 06/12/2018, 09:55:22 Uscita 3:12 giugno 2018 Uscita 4:12 giugno 2018 Uscita 5:09
Elenco codici formato
La tabella seguente mostra tutti i codici che puoi passare al strftime()
metodo.
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 "%". | % |
Esempio 3: data e ora appropriate delle impostazioni locali
from datetime import datetime timestamp = 1528797322 date_time = datetime.fromtimestamp(timestamp) d = date_time.strftime("%c") print("Output 1:", d) d = date_time.strftime("%x") print("Output 2:", d) d = date_time.strftime("%X") print("Output 3:", d)
Quando esegui il programma, l'output sarà:
Uscita 1: Mar Jun 12 09:55:22 2018 Uscita 2: 06/12/18 Uscita 3: 09:55:22
Formattare i codici %c
, %x
e %X
sono utilizzati per la data e l'ora appropriata la rappresentazione del locale.
Ti consigliamo anche di controllare Python strptime (). Il strptime()
metodo crea un datetime
oggetto da una stringa.