Python datetime: come lavorare con data e ora in Python

Il modulo Python datetime semplifica il lavoro con informazioni su data e ora. In questo modo è possibile visualizzare le date e creare oggetti data utilizzando soltanto poche righe di codice.

Il modulo datetime in breve

Python datetime è un modulo di Python che vale la pena conoscere, sia che abbiate appena letto il vostro primo tutorial su Python sia che lavoriate già da tempo con questo linguaggio di programmazione per il web. È possibile pensare ai moduli come a una libreria di codice in altri linguaggi di programmazione. L’importazione del modulo datetime permette di ampliare le funzionalità di Python con funzioni per la gestione della data e dell’ora. A tal fine, il modulo utilizza specifici oggetti data che potete creare facilmente nel vostro codice.

Consiglio

Utilizzate Python per il vostro progetto web? Deploy Now di IONOS vi permette di effettuare in qualsiasi momento il deployment delle modifiche al vostro codice tramite GitHub e di seguire lo stato aggiornato del vostro progetto in tempo reale.

Python datetime: data e ora

Un esempio di utilizzo di Python datetime è la memorizzazione di data e ora in un oggetto separato. Per farlo è necessario il costruttore Python datetime, la cui sintassi si presenta così:

import datetime as dt
dt.datetime(year, month, day, hour, minute, second, microsecond, timezone)
python

I parametri accettati dalla funzione rappresentano la data e l’ora correnti. I parametri che specificano l’ora sono opzionali: il valore predefinito è sempre impostato su 0. Lo stesso vale per il parametro che indica il fuso orario e che è impostato su NULL per impostazione predefinita. La funzione datetime restituisce un oggetto datetime di Python.

Il costruttore date in Python: la data

Analogamente al costruttore datetime, Python dispone anche del costruttore date, che permette di creare un oggetto date. Qui l’ora corrente non ha alcuna importanza. La sintassi del costruttore date è analoga a quella di datetime:

import datetime as dt
dt.date(year, month, day)
python

I parametri di passaggio accettati dal costruttore date in Python sono l’anno, il mese e il giorno desiderati. Il risultato dell’esecuzione della funzione è un oggetto date.

Come richiamare la data corrente

Alcune funzioni predefinite sono a vostra disposizione per memorizzare la data e l’ora correnti anziché date specifiche. Se invece vi interessa utilizzare la data corrente oppure la data e l’ora correnti insieme, dovete ricorrere a una funzione diversa.

Procedura per la data corrente

Se vi interessa solo la data composta da anno, mese e giorno, potete utilizzare una funzione della classe date di Python di nome “today”. Eseguire la funzione è semplice:

import datetime as dt
current_date = dt.date.today()
python

Per eseguire la funzione today è necessario indicare innanzitutto il modulo datetime, che nell’esempio precedente contiene l’alias dt. Successivamente, utilizzate la notazione con punto per accedere alla classe date, nella quale è specificata a sua volta la funzione today. Dopo aver eseguito il codice sopra indicato, la variabile di nome current_date contiene un oggetto date di Python con la data corrente.

Procedura per la data e l’ora correnti insieme

Se vi serve anche l’ora corrente, potete ricorrere a una funzione della classe datetime: now. Eseguendo la funzione now otterrete un oggetto datetime di Python che, oltre alla data corrente, contiene anche l’ora esatta, fino al singolo millisecondo.

import datetime as dt
current_date_and_time = dt.datetime.now()
python

L’esecuzione è analoga a quella della funzione today, ma nell’ambito della classe datetime. Dopo l’esecuzione della funzione, la variabile “current_date_and_time” contiene un oggetto datetime con la data e l’ora correnti.

Consiglio

Se vi interessano singoli valori di un oggetto, ad esempio il giorno, è possibile utilizzare la notazione con punto per accedere esattamente a questo valore. Ad esempio, con “current_date.day” potete accedere al giorno corrente.

Formattazione di date in Python

La formattazione di oggetti datetime e date è particolarmente importante quando è necessario ottenere come risultato una data nel formato adatto allo scopo della vostra applicazione. Anche in questo caso il modulo Python datetime dispone di un’idonea funzione di nome strftime.

La sintassi della funzione si presenta così:

import datetime as dt
current_date = dt.date.today()
current_date.strftime(format)
python

La funzione viene eseguita direttamente su un oggetto date o datetime e accetta un determinato formato come parametro di passaggio. Il formato va inserito sotto forma di stringa di Python, ossia tra virgolette. A tal fine Python supporta vari formati diversi; nella tabella seguente è riportato un riepilogo delle relative abbreviazioni:

Abbreviazione Descrizione Esempio
%a Giorno della settimana, abbreviato Sat
%A Giorno della settimana, per esteso Saturday
%w Giorno della settimana come numero 6
%u Giorno della settimana secondo ISO 8601 6
%j Numero del giorno corrente (riferito all’intero anno) 365
%b Nome del mese, abbreviato Dec
%B Nome del mese, per esteso December
%m Mese come numero 12
%U Numero della settimana, contando la domenica come primo giorno della settimana 50
%W Numero della settimana, contando il lunedì come primo giorno della settimana 50
%y Anno, abbreviato 22
%Y Anno, per esteso 2022
%H Ora (0-23) 22
%I Ora (0-12) 11
%p AM o PM AM
%M Minuto 59
%S Secondo 37
%f Microsecondo 567213
%z Offset UTC +0100
%Z Fuso orario CST
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.