Módulo 5 - Módulos e a biblioteca padrão
Trabalhando com datas: datetime em visão geral
9 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 01/07/2026
O que você vai aprender
- Pegar a data e hora atual com datetime.now().
- Criar uma data específica com datetime ou date.
- Calcular a diferença entre duas datas e entender o timedelta.
- Saber que o módulo 14 aprofunda formatação e fuso horário.
Ouvir o resumo desta aula
Um recap de cerca de 2 minutos na voz do Valim, para ouvir no trânsito ou na academia.
Ler a transcrição do resumo
Resumo da aula: Trabalhando com datas: datetime em visão geral.
Os objetivos desta aula. Pegar a data e hora atual com datetime.now(). Criar uma data específica com datetime ou date. Calcular a diferença entre duas datas e entender o timedelta. Saber que o módulo 14 aprofunda formatação e fuso horário.
Veja o essencial, parte por parte.
A data e a hora de agora. datetime.now() devolve a data e a hora do momento em que roda.
Criar uma data e comparar. Se você só precisa do dia, sem hora, use a classe date em vez de datetime.
A diferença entre duas datas. O cálculo mais pedido com datas é a diferença: quantos dias faltam para um prazo, há quanto tempo algo aconteceu, quantos dias uma pessoa já viveu.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
A data e a hora de agora
Quase todo programa precisa lidar com o tempo em algum momento: registrar quando algo aconteceu, calcular um prazo, descobrir a idade de alguém. Guardar isso como texto, tipo "25/12/2026", é uma armadilha, porque você não consegue comparar nem calcular com texto de forma confiável. O módulo datetime resolve isso com objetos de data que sabem fazer contas. O ponto de partida é a função now, que devolve o instante atual.
from datetime import datetime
agora = datetime.now()
print(agora) # 2026-07-02 14:30:05.123456
# partes acessiveis por atributo
print(agora.year) # 2026
print(agora.month) # 7
print(agora.day) # 2
print(agora.hour) # 14datetime.now() devolve o instante atual, com ano, mês, dia e hora acessíveis por atributo.
Repare no import diferente: from datetime import datetime. O nome do módulo e o nome da classe principal dentro dele são iguais, datetime, o que confunde no começo. A leitura é: do módulo datetime, traga a classe datetime. A partir daí, datetime.now() devolve o momento atual e você acessa cada parte por atributo, como .year e .day. Nada de fatiar texto: os pedaços já vêm prontos e corretos.
Criar uma data e comparar
Além de pegar o agora, você quase sempre precisa criar uma data específica, como um prazo ou um feriado. Basta informar ano, mês e dia, nessa ordem. E como esses objetos entendem o calendário de verdade, você pode compará-los com os operadores que já conhece do Básico: maior, menor, igual. Perguntar se uma data vem antes de outra é tão simples quanto comparar dois números.
from datetime import datetime
natal = datetime(2026, 12, 25)
hoje = datetime.now()
print(natal > hoje) # True, se ainda nao chegou o Natal
if hoje < natal:
print("O Natal ainda nao chegou.")
else:
print("O Natal ja passou este ano.")Objetos de data se comparam com <, > e == como se fossem números.
A diferença entre duas datas
O cálculo mais pedido com datas é a diferença: quantos dias faltam para um prazo, há quanto tempo algo aconteceu, quantos dias uma pessoa já viveu. No datetime isso é uma subtração direta. Quando você subtrai uma data de outra, o Python não devolve um número solto: ele devolve um objeto timedelta, que representa uma duração. Desse timedelta você tira a quantidade de dias com o atributo .days.
from datetime import date
ano_novo = date(2027, 1, 1)
hoje = date.today()
faltam = ano_novo - hoje # isto e um timedelta
print(faltam.days, "dias para o Ano Novo")
# ex.: 183 dias para o Ano Novo
nascimento = date(1990, 5, 20)
vividos = hoje - nascimento
print(f"Voce ja viveu {vividos.days} dias")Subtrair datas devolve um timedelta; .days dá a diferença em dias.
Essa visão geral já resolve muita coisa do dia a dia: pegar o agora, criar datas, compará-las e medir a distância entre elas. O que fica para o módulo 14 é o refinamento: formatar uma data para exibir no jeito brasileiro, ler uma data que veio como texto, somar dias a uma data e lidar com fuso horário. Por ora, você tem o essencial para não guardar mais datas como texto solto e para deixar o Python fazer as contas de calendário por você, sem erro.
Teste rápido
O que você recebe ao subtrair uma data de outra no Python?
Perguntas frequentes
- Por que o import é from datetime import datetime, com o nome repetido?
- Porque o módulo se chama datetime e a classe principal dentro dele também se chama datetime. A linha lê-se: do módulo datetime, traga a classe datetime. É confuso no começo, mas comum. Se quiser só a data sem hora, importe a classe date do mesmo módulo.
- Qual a diferença entre datetime e date?
- A classe datetime guarda data e hora juntas (ano, mês, dia, hora, minuto, segundo). A classe date guarda apenas a data (ano, mês, dia). Use date quando a hora não importa, como uma data de nascimento ou um prazo em dias, e datetime quando você precisa do horário também.
- Como pego só a data de hoje, sem a hora?
- Use date.today(), depois de from datetime import date. Ela devolve apenas ano, mês e dia de hoje. Se você já tem um datetime completo e quer só a parte da data, pode chamar o método .date() nele, como agora.date().
- Dá para somar dias a uma data?
- Dá, usando um timedelta, como data + timedelta(days=7) para daqui a uma semana. Este é um dos tópicos que o módulo 14 detalha, junto com formatar datas e lidar com fuso horário. Nesta aula o foco é a visão geral: pegar, criar, comparar e medir a diferença.
- Por que não guardar a data como texto, tipo "02/07/2026"?
- Porque texto não faz contas nem comparações confiáveis. "10/01" viria antes de "02/07" numa ordenação de texto, o que está errado. Objetos de data entendem o calendário, comparam certo e calculam diferenças. Guarde datas como objetos e só converta para texto na hora de exibir.
- Este módulo já cobre fuso horário e formatação?
- Não em profundidade. Esta aula é a visão geral para você já usar datas no dia a dia. Formatar uma data no padrão brasileiro, ler uma data que veio como texto e trabalhar com fuso horário são temas do módulo 14, que aprofunda o datetime com calma.
Fontes
Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.