Come formattare le date in Python

Introduzione

Python viene fornito con una varietà di oggetti utili che possono essere utilizzati immediatamente. Gli oggetti Data sono esempi di tali oggetti. I tipi di data sono difficili da manipolare da zero, a causa della complessità di date e ore. Tuttavia, gli oggetti data di Python rendono estremamente semplice la conversione delle date nei formati di stringa desiderati.

La formattazione della data è un compito comune che dovrai affrontare come programmatore e comunicare correttamente le date agli utenti finali, se la tua applicazione le espone, è una parte importante della UX.

Diverse regioni del mondo hanno modi diversi di rappresentare date/ora, quindi il tuo obiettivo come programmatore è presentare i valori delle date in modo che siano leggibili per gli utenti.

Ad esempio, potrebbe essere necessario rappresentare numericamente un valore di data come "02-23-2023". D'altro canto, potrebbe essere necessario scrivere lo stesso valore di data in un formato testuale più lungo come "23 febbraio 2023". In un altro scenario, potresti voler estrarre il mese in formato stringa da un valore di data in formato numerico.

In questo articolo studieremo diversi tipi di oggetti data insieme alle loro funzionalità.

Il modulo data/ora

Python's datetime il modulo contiene metodi che possono essere utilizzati per lavorare con valori di data e ora. Per utilizzare questo modulo, dobbiamo prima importarlo tramite il file import dichiarazione come segue:

import datetime

Possiamo rappresentare i valori temporali utilizzando il metodo time classe. Gli attributi per il time la classe include l'ora, i minuti, i secondi e i microsecondi.

Nota: Gli argomenti per time classe sono facoltativi. Anche se non specifichi alcun argomento otterrai un tempo pari a 0, che è improbabile che sia ciò di cui hai bisogno per la maggior parte del tempo.

Ad esempio, puoi inizializzare un oggetto tempo con un valore di 1 ora, 10 minuti, 20 secondi e 13 microsecondi utilizzando:

t = datetime.time(1, 10, 20, 13)

Per vedere l'ora, usiamo il print funzione:

print(t)

Per estrarre campi, come l'ora, il minuto, il secondo o il microsecondo, puoi accedere a ciascun campo rispettivamente:

print('hour:', t.hour)

I minuti, i secondi e i microsecondi per il tempo sopra indicato possono essere recuperati come segue:

print('Minutes:', t.minute) 
print('Seconds:', t.second) 
print('Microsecond:', t.microsecond) 

I valori per la data del calendario possono essere rappresentati tramite date classe. Le istanze avranno attributi per anno, mese e giorno.

Chiamiamo il today() metodo per vedere la data odierna:

import datetime

today = datetime.date.today()
print(today) 

Il codice restituirà la data odierna, quindi l'output che vedrai dipenderà dal giorno in cui esegui lo script sopra.

Ora chiamiamo il ctime metodo per stampare la data in un altro formato:

print('ctime:', today.ctime())

Il ctime Il metodo utilizza un formato data-ora più lungo rispetto agli esempi visti in precedenza. Questo metodo viene utilizzato principalmente per convertire l'ora Unix (il numero di secondi dal 1 gennaio 1970) in un formato stringa.

Ed ecco come possiamo visualizzare l'anno, il mese e il giorno utilizzando il file date classe:

print('Year:', today.year)
print('Month:', today.month)
print('Day :', today.day)

Questo risulta in:

Year: 2022
Month: 9
Day : 15

Conversione di date in stringhe con strftime()

Ora che sai come creare oggetti Data e Ora, impariamo come formattarli in stringhe più leggibili.

Per raggiungere questo obiettivo, utilizzeremo il file strftime() metodo. Questo metodo ci aiuta a convertire gli oggetti data in stringhe leggibili. Richiede due parametri, come mostrato nella seguente sintassi:

time.strftime(format, t)

Il primo parametro è la stringa di formato, mentre il secondo parametro è l'ora da formattare, che è facoltativa.

Questo metodo può essere utilizzato anche su a datetime oggetto direttamente, come mostrato nell'esempio seguente:

import datetime

x = datetime.datetime(2022, 9, 15)
print(x.strftime("%b %d %Y %H:%M:%S"))

Dai un'occhiata alla nostra guida pratica e pratica per l'apprendimento di Git, con le migliori pratiche, gli standard accettati dal settore e il cheat sheet incluso. Smetti di cercare su Google i comandi Git e in realtà imparare esso!

Abbiamo utilizzato le seguenti stringhe di caratteri per formattare la data:

  • %b: Restituisce i primi tre caratteri del nome del mese. Nel nostro esempio, ha restituito "Sep".
  • %d: Restituisce il giorno del mese, da 1 a 31. Nel nostro esempio, ha restituito “15”.
  • %Y: Restituisce l'anno in formato a quattro cifre. Nel nostro esempio, ha restituito “2022”.
  • %H: Restituisce l'ora. Nel nostro esempio, ha restituito “00”.
  • %M: Restituisce i minuti, da 00 a 59. Nel nostro esempio, ha restituito “00”.
  • %S: Restituisce il secondo, da 00 a 59. Nel nostro esempio, ha restituito “00”.

Non abbiamo trascorso un tempo, quindi i valori del tempo sono tutti “00”. L'esempio seguente mostra anche come può essere formattata l'ora:

import datetime

x = datetime.datetime(2022, 9, 15, 12, 45, 35)
print(x.strftime("%b %d %Y %H:%M:%S"))

L'elenco completo dei codici dei caratteri

Oltre alle stringhe di caratteri sopra indicate, il file strftime Il metodo accetta diverse altre direttive per la formattazione dei valori di data:

  • %a: Restituisce i primi tre caratteri del giorno della settimana, ad es. Mer.
  • %A: Restituisce il nome completo del giorno della settimana, ad esempio mercoledì.
  • %B: Restituisce il nome completo del mese, ad esempio settembre.
  • %w: Restituisce il giorno della settimana come numero, da 0 a 6, dove domenica è 0.
  • %m: Restituisce il mese come numero, da 01 a 12.
  • %p: restituisce AM/PM per l'ora.
  • %y: Restituisce l'anno nel formato a due cifre, ovvero senza il secolo. Ad esempio, “18” invece di “2018”.
  • %f: Restituisce i microsecondi da 000000 a 999999.
  • %Z: Restituisce il fuso orario.
  • %z: Restituisce l'offset UTC.
  • %j: Restituisce il numero del giorno dell'anno, da 001 a 366.
  • %W: Restituisce il numero della settimana dell'anno, da 00 a 53, considerando il lunedì come primo giorno della settimana.
  • %U: Restituisce il numero della settimana dell'anno, da 00 a 53, con la domenica conteggiata come primo giorno di ogni settimana.
  • %c: Restituisce la versione di data e ora locale.
  • %x: Restituisce la versione locale di data.
  • %X: Restituisce la versione locale dell'ora.

Considera il seguente esempio:

import datetime

x = datetime.datetime(2022, 9, 15)
print(x.strftime('%b/%d/%Y'))

Ed ecco come puoi ottenere solo il mese:

print(x.strftime('%B'))

Mostriamo l'anno:

print(x.strftime('%Y'))

In questo esempio abbiamo utilizzato il codice del formato %Y. Notare che il Y è in maiuscolo. Ora scrivilo in minuscolo:

print(x.strftime('%y'))

Come puoi vedere, con questi codici di formattazione puoi rappresentare la data e l'ora praticamente in qualsiasi forma desideri.

Conversione di stringhe in date con strptime

Il strftime() Il metodo ci ha aiutato a convertire gli oggetti data in stringhe più leggibili. IL strptime() fa il contrario, cioè prende stringhe e le converte in oggetti data che Python può comprendere.

Ciò è utile quando ricevi una data in formato stringa e desideri convertirla in una data in formato stringa diversa. Convertendosi in un oggetto datetime intermedio, si ottiene l'accesso a una struttura analizzata che può essere riformattata in qualsiasi altro formato.

Ecco la sintassi del metodo:

datetime.strptime(string, format)

Il string Il parametro è il valore in formato stringa che vogliamo convertire in formato data. IL format Il parametro è la direttiva che specifica il formato da assumere entro la data successiva alla conversione.

Ad esempio, supponiamo di dover convertire la stringa “9/15/22” in a datetime oggetto.

Importiamo prima il file datetime modulo:

from datetime import datetime

Possiamo quindi definire la data sotto forma di stringa:

str = '9/15/22'

Python non sarà in grado di interpretare la stringa sopra come datetime finché non la convertiamo in un valore effettivo datetime oggetto. Possiamo farlo con successo chiamando il strptime metodo.

Eseguire il comando seguente per convertire la stringa:

date_object = datetime.strptime(str, '%m/%d/%y')

Chiamiamo ora il print funzione per visualizzare la stringa in datetime formato:

print(date_object)

Come puoi vedere, la conversione ha avuto successo!

Ora puoi convertire questo oggetto data in qualsiasi altro formato di stringa.

Gestire diversi separatori è facile come usarli nella stringa di formato:

from datetime import datetime

str = '9-15-22'
date_object = datetime.strptime(str, '%m-%d-%y')
print(date_object)

Conclusione

In questo articolo, abbiamo studiato come formattare le date in Python. Abbiamo visto come datetime Il modulo in Python può essere utilizzato per la manipolazione dei valori di data e ora. Il modulo contiene una serie di classi che possono essere utilizzate a questo scopo. Ad esempio, il time viene utilizzata per rappresentare valori temporali mentre il date La classe viene utilizzata per rappresentare i valori delle date del calendario.

Timestamp:

Di più da Impilamento