HOWTO · Python

Obtenha o ano atual em Python

Aprenda como obter o ano em curso de várias maneiras fáceis em Python

Nesta página

Use o módulo datetime da biblioteca padrão do Python para obter o ano atual. Chame datetime.datetime.now() e formate a data com strftime("%Y") quando precisar do ano como texto, ou chame datetime.date.today() e leia o atributo year quando precisar de um inteiro. As duas abordagens usam a data disponível na máquina que executa o programa; por isso, o ano retornado muda quando a data dessa máquina passa para um novo ano.

Obtenha o ano atual com strftime()

O método strftime() formata uma data ou hora como texto. A diretiva %Y formata o ano como uma sequência de quatro dígitos, útil para exibi-lo ou combiná-lo com outras partes de uma data formatada. O exemplo a seguir obtém a data atual e imprime o ano:

Execute este exemplo. O código e os rótulos ou saídas exibidos nesta seção permanecem em 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

Aqui, datetime.datetime.now() fornece a data e a hora locais atuais, e .date() mantém somente a parte da data. Chamar strftime("%Y") nessa data retorna um texto, não um número. Por exemplo, se o ano atual em tempo de execução for 2026, current_year será o texto "2026". O ano exibido depende do relógio do ambiente de execução; não trate um valor de exemplo como se ele continuasse atual nos anos seguintes.

Você pode usar outras diretivas de formato para incluir detalhes adicionais da data. Por exemplo, %A %Y formata o nome do dia da semana seguido pelo ano. O dia da semana exato depende da data formatada. Consulte a documentação do Python sobre os códigos de formato de strftime() e strptime() para ver a lista completa de diretivas e as observações específicas de cada plataforma.

Obtenha o ano atual com o atributo year

Quando for mais conveniente usar o ano como número, obtenha um objeto datetime.date e leia seu atributo year. datetime.date.today() retorna diretamente a data de hoje, evitando criar um valor datetime.datetime e convertê-lo em data primeiro.

Execute este exemplo. O código e os rótulos ou saídas exibidos nesta seção permanecem em inglês.

import datetime

current_date = datetime.date.today()
current_year = current_date.year
print(f"Current year: {current_year}")
Current year: 2026

O valor de current_year aqui é um inteiro, ao contrário do texto retornado por strftime("%Y"). Use o inteiro em cálculos ou comparações e converta-o em texto para exibi-lo ou combiná-lo com outras strings. Tanto datetime.datetime.now().date() quanto datetime.date.today() produzem objetos de data cujo atributo year pode ser lido como date.year; escolha a expressão mais adequada à data que você já tem. Por exemplo, se seu código já contém uma data, leia o atributo desse objeto em vez de buscar a data de hoje novamente. O atributo informa o ano daquele objeto de data, que pode ser diferente do ano atual se ele representar uma data passada ou futura.

Estes exemplos usam a data local da máquina. Se sua aplicação precisar do ano em um fuso horário específico, comece com um datetime com fuso horário definido, converta-o para esse fuso com astimezone() e, em seguida, leia ou formate o ano do datetime convertido. Essa conversão é importante perto do Ano-Novo: o mesmo instante pode corresponder a datas de calendário diferentes e, portanto, a anos diferentes em fusos horários distintos. Um date simples não contém informações de fuso horário; escolha o fuso antes de derivar a data a partir de um instante.