Il modulo Python datetime sem­pli­fi­ca il lavoro con in­for­ma­zio­ni su data e ora. In questo modo è possibile vi­sua­liz­za­re le date e creare oggetti data uti­liz­zan­do 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 lin­guag­gio di pro­gram­ma­zio­ne per il web. È possibile pensare ai moduli come a una libreria di codice in altri linguaggi di pro­gram­ma­zio­ne. L’im­por­ta­zio­ne del modulo datetime permette di ampliare le fun­zio­na­li­tà di Python con funzioni per la gestione della data e dell’ora. A tal fine, il modulo utilizza specifici oggetti data che potete creare fa­cil­men­te nel vostro codice.

Consiglio

Uti­liz­za­te Python per il vostro progetto web? Deploy Now di IONOS vi permette di ef­fet­tua­re in qualsiasi momento il de­ploy­ment delle modifiche al vostro codice tramite GitHub e di seguire lo stato ag­gior­na­to del vostro progetto in tempo reale.

Python datetime: data e ora

Un esempio di utilizzo di Python datetime è la me­mo­riz­za­zio­ne di data e ora in un oggetto separato. Per farlo è ne­ces­sa­rio il co­strut­to­re 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 rap­pre­sen­ta­no la data e l’ora correnti. I parametri che spe­ci­fi­ca­no l’ora sono opzionali: il valore pre­de­fi­ni­to è sempre impostato su 0. Lo stesso vale per il parametro che indica il fuso orario e che è impostato su NULL per im­po­sta­zio­ne pre­de­fi­ni­ta. La funzione datetime re­sti­tui­sce un oggetto datetime di Python.

Il co­strut­to­re date in Python: la data

Ana­lo­ga­men­te al co­strut­to­re datetime, Python dispone anche del co­strut­to­re date, che permette di creare un oggetto date. Qui l’ora corrente non ha alcuna im­por­tan­za. La sintassi del co­strut­to­re date è analoga a quella di datetime:

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

I parametri di passaggio accettati dal co­strut­to­re date in Python sono l’anno, il mese e il giorno de­si­de­ra­ti. Il risultato dell’ese­cu­zio­ne della funzione è un oggetto date.

Come ri­chia­ma­re la data corrente

Alcune funzioni pre­de­fi­ni­te sono a vostra di­spo­si­zio­ne per me­mo­riz­za­re la data e l’ora correnti anziché date spe­ci­fi­che. Se invece vi interessa uti­liz­za­re 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 uti­liz­za­re 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 è ne­ces­sa­rio indicare in­nan­zi­tut­to il modulo datetime, che nell’esempio pre­ce­den­te contiene l’alias dt. Suc­ces­si­va­men­te, uti­liz­za­te la notazione con punto per accedere alla classe date, nella quale è spe­ci­fi­ca­ta 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 mil­li­se­con­do.

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

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

Consiglio

Se vi in­te­res­sa­no singoli valori di un oggetto, ad esempio il giorno, è possibile uti­liz­za­re la notazione con punto per accedere esat­ta­men­te a questo valore. Ad esempio, con “current_date.day” potete accedere al giorno corrente.

For­mat­ta­zio­ne di date in Python

La for­mat­ta­zio­ne di oggetti datetime e date è par­ti­co­lar­men­te im­por­tan­te quando è ne­ces­sa­rio ottenere come risultato una data nel formato adatto allo scopo della vostra ap­pli­ca­zio­ne. 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 di­ret­ta­men­te su un oggetto date o datetime e accetta un de­ter­mi­na­to formato come parametro di passaggio. Il formato va inserito sotto forma di stringa di Python, ossia tra vir­go­let­te. A tal fine Python supporta vari formati diversi; nella tabella seguente è riportato un riepilogo delle relative ab­bre­via­zio­ni:

Ab­bre­via­zio­ne De­scri­zio­ne Esempio
%a Giorno della settimana, ab­bre­via­to 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, ab­bre­via­to 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, ab­bre­via­to 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 Mi­cro­se­con­do 567213
%z Offset UTC +0100
%Z Fuso orario CST
Vai al menu prin­ci­pa­le