HOWTO · Python
Ottieni l'anno corrente in Python
Scopri come ottenere l'anno in corso in molti modi semplici in Python
In questa pagina
Usa il modulo datetime della libreria standard di Python per ottenere l’anno corrente. Chiama datetime.datetime.now() e formatta la data con strftime("%Y") quando ti serve una stringa con l’anno; se invece ti serve un numero intero, chiama datetime.date.today() e leggi il suo attributo year. Entrambi i metodi usano la data disponibile sulla macchina che esegue il programma: l’anno restituito cambia quando la data di quella macchina passa al nuovo anno.
Ottieni l’anno corrente con strftime()
Il metodo strftime() formatta una data o un orario come stringa. La direttiva %Y formatta l’anno come stringa di quattro cifre, utile per visualizzarlo o combinarlo con altri elementi di una data formattata. L’esempio seguente recupera la data corrente e ne stampa l’anno:
Esegui questo esempio:
Il codice e le etichette o gli output visibili in questa sezione restano in inglese.
import datetime
current_date = datetime.datetime.now().date()
current_year = current_date.strftime("%Y")
print(f"Current year: {current_year}")
Current year: 2026
Qui, datetime.datetime.now() fornisce la data e l’ora locali correnti, mentre .date() conserva solo la parte relativa alla data. Chiamando strftime("%Y") su questa data si ottiene una stringa, non un numero. Per esempio, se l’anno corrente rilevato dall’ambiente di esecuzione è il 2026, current_year è la stringa "2026". L’anno visualizzato dipende dall’orologio dell’ambiente di esecuzione: un valore di esempio non resterà attuale negli anni successivi. Nell’output mostrato, l’etichetta Current year: rimane in inglese, esattamente come compare nel blocco di output invariato.
Puoi usare altre direttive di formattazione per includere ulteriori dettagli della data. Per esempio, %A %Y formatta il nome del giorno della settimana seguito dall’anno. Il giorno esatto dipende dalla data formattata. Consulta la documentazione Python sui codici di formato di strftime() e strptime() per l’elenco completo delle direttive e le relative note sulle piattaforme.
Ottieni l’anno corrente con l’attributo year
Quando è più comodo usare un anno numerico, ottieni un oggetto datetime.date e leggine l’attributo year. datetime.date.today() restituisce direttamente la data odierna, quindi questo metodo evita di creare un valore datetime.datetime e convertirlo prima in una data.
Esegui questo esempio:
Il codice e le etichette o gli output visibili in questa sezione restano in inglese.
import datetime
current_date = datetime.date.today()
current_year = current_date.year
print(f"Current year: {current_year}")
Current year: 2026
In questo caso, current_year è un numero intero, a differenza della stringa restituita da strftime("%Y"). Usa l’intero per calcoli o confronti; convertilo in testo se devi visualizzarlo o combinarlo con altre stringhe. Sia datetime.datetime.now().date() sia datetime.date.today() producono oggetti data il cui attributo year si può leggere come date.year; scegli l’espressione più adatta al valore data che hai già. Per esempio, se il codice dispone già di una data, leggine l’attributo invece di recuperare di nuovo la data odierna. L’attributo indica l’anno dell’oggetto data: può quindi differire dall’anno corrente se l’oggetto rappresenta una data passata o futura.
Questi esempi usano la data locale della macchina. Se l’applicazione richiede l’anno in un fuso orario specifico, parti da un datetime consapevole del fuso, convertilo con astimezone() e poi leggi o formatta l’anno del datetime convertito. La conversione è importante intorno a Capodanno: lo stesso istante può corrispondere a date di calendario diverse e quindi ad anni diversi in fusi orari differenti. Un date semplice non contiene informazioni sul fuso orario, perciò scegli il fuso prima di ricavare la data da un istante.