HOWTO · Python
Obtenga el año actual en Python
Aprenda a obtener el año actual de varias formas sencillas en Python
En esta página
Usa el módulo datetime de la biblioteca estándar de Python para obtener el año actual. Llama a datetime.datetime.now() y da formato a su fecha con strftime("%Y") cuando necesites una cadena con el año, o llama a datetime.date.today() y lee su atributo year cuando necesites un entero. Ambos métodos usan la fecha disponible en la máquina que ejecuta el programa, por lo que el año obtenido cambia cuando la fecha de esa máquina pasa al año siguiente.
Obtén el año actual con strftime()
El método strftime() da formato a una fecha o una hora como una cadena. La directiva %Y representa el año como una cadena de cuatro dígitos, útil para mostrarlo o combinarlo con otras partes de una fecha con formato. El siguiente ejemplo obtiene la fecha actual e imprime el año:
Ejecuta este ejemplo. El código y las etiquetas o salidas visibles de los ejemplos se mantienen en inglés.
import datetime
current_date = datetime.datetime.now().date()
current_year = current_date.strftime("%Y")
print(f"Current year: {current_year}")
Current year: 2026
Aquí, datetime.datetime.now() proporciona la fecha y la hora locales actuales, y .date() conserva solo la parte de la fecha. Al llamar a strftime("%Y") para esa fecha se obtiene una cadena, no un número. Por ejemplo, si el año actual del entorno de ejecución es 2026, current_year contiene la cadena "2026". El año mostrado depende del reloj del entorno de ejecución; no consideres que un valor de ejemplo seguirá siendo actual en los años posteriores.
Puedes usar directivas de formato adicionales para incluir otros datos de la fecha. Por ejemplo, %A %Y representa el nombre del día de la semana seguido del año. El día exacto depende de la fecha a la que se aplique el formato. Consulta la documentación de Python sobre los códigos de formato de strftime() y strptime() para ver la lista completa de directivas y sus observaciones específicas de cada plataforma.
Obtén el año actual con el atributo year
Cuando resulte más práctico usar un año numérico, obtén un objeto datetime.date y lee su atributo year. datetime.date.today() devuelve directamente la fecha de hoy, por lo que este método evita crear un valor datetime.datetime y convertirlo primero en una fecha.
Ejecuta este ejemplo. El código y las etiquetas o salidas visibles de los ejemplos se mantienen en inglés.
import datetime
current_date = datetime.date.today()
current_year = current_date.year
print(f"Current year: {current_year}")
Current year: 2026
El valor de current_year es aquí un entero, a diferencia de la cadena que devuelve strftime("%Y"). Usa el entero para hacer cálculos o comparaciones, y conviértelo en texto si necesitas mostrarlo o combinarlo con otras cadenas. Tanto datetime.datetime.now().date() como datetime.date.today() producen objetos de fecha cuyo atributo year se puede leer como date.year; elige la expresión que mejor se adapte al valor de fecha que ya tienes. Por ejemplo, si tu código ya contiene una fecha, lee el atributo de ese objeto en lugar de volver a obtener la fecha de hoy. El atributo indica el año de esa fecha, que puede diferir del año actual si el objeto representa una fecha pasada o futura.
Estos ejemplos usan la fecha local de la máquina. Si tu aplicación necesita el año en una zona horaria específica, empieza con un datetime con zona horaria, conviértelo a esa zona con astimezone() y, después, lee o da formato al año del datetime convertido. La conversión es importante cerca de Año Nuevo: el mismo instante puede corresponder a fechas del calendario distintas y, por tanto, a años diferentes según la zona horaria. Un objeto date simple no contiene información de zona horaria, así que elige la zona antes de obtener la fecha a partir de un instante.