Formatação e análise
Use strftime e strptime
Formatação e análise é uma aula grátis de Python Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Python Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python Academy inclui 4 aulas no total.
Por que formatar e analisar?
Os computadores armazenam datas como objetos, mas as pessoas as leem como texto. A formatação transforma uma data e hora em uma cadeia de caracteres, e a análise transforma uma cadeia de caracteres novamente em uma data e hora.
strftime= cadeia de caracteres FROM hora (formatação).strptime= cadeia de caracteres PARSE hora (análise).
from datetime import datetime
now = datetime(2026, 5, 30, 14, 5)
print(now)Seu primeiro strftime
Chame .strftime(format) em uma data e hora. Os códigos de formato começam com %: %Y é o ano com 4 dígitos, %m é o mês e %d é o dia.
from datetime import datetime
d = datetime(2026, 5, 30)
print(d.strftime('%Y-%m-%d'))Formatando a parte da hora
Códigos de hora: %H é a hora (00-23), %M é o minuto e %S é o segundo. Combine-os com texto literal como preferir.
from datetime import datetime
d = datetime(2026, 5, 30, 9, 7, 3)
print(d.strftime('%H:%M:%S'))Nomes fáceis de entender
Alguns códigos produzem nomes: %A é o dia da semana por extenso, %B é o nome do mês por extenso e %b é o mês abreviado.
from datetime import datetime
d = datetime(2026, 5, 30)
print(d.strftime('%A, %B %d, %Y'))Relógios de 12 horas e AM/PM
Use %I para a hora no formato de 12 horas e %p para AM ou PM. Isso é comum em exibições voltadas ao usuário.
from datetime import datetime
d = datetime(2026, 5, 30, 14, 30)
print(d.strftime('%I:%M %p'))Analisando com strptime
datetime.strptime(text, format) lê uma cadeia de caracteres e a transforma em uma data e hora. O formato deve corresponder exatamente ao texto, código por código.
from datetime import datetime
text = '2026-05-30'
d = datetime.strptime(text, '%Y-%m-%d')
print(d)
print(type(d))Analisando data e hora juntas
Inclua códigos de hora no formato para analisar um carimbo de data e hora completo. Cada separador (hífens, espaços e dois-pontos) presente no texto também deve aparecer no padrão.
from datetime import datetime
text = '30/05/2026 14:05'
d = datetime.strptime(text, '%d/%m/%Y %H:%M')
print(d.year, d.hour, d.minute)Ida e volta: analisar e depois formatar
Um fluxo de trabalho comum é analisar o texto recebido, executar alguma lógica e depois reformatá-lo para a saída — até mesmo em um formato diferente.
from datetime import datetime
raw = '2026-05-30'
d = datetime.strptime(raw, '%Y-%m-%d')
pretty = d.strftime('%B %d, %Y')
print(pretty)Atalho do formato ISO
.isoformat() produz a cadeia de caracteres ISO 8601 padrão, e datetime.fromisoformat() a lê novamente sem precisar de códigos de formato.
from datetime import datetime
d = datetime(2026, 5, 30, 14, 5)
s = d.isoformat()
print(s)
back = datetime.fromisoformat(s)
print(back == d)Lidando com erros de análise
Se o texto não corresponder ao formato, strptime gera um ValueError. Coloque-o em um bloco try/except quando a entrada puder estar malformada.
from datetime import datetime
try:
datetime.strptime('not-a-date', '%Y-%m-%d')
except ValueError as e:
print('Could not parse:', e)Dia do ano e mais
Códigos adicionais: %j é o dia do ano (001-366) e %w é o dia da semana representado por um número (0=domingo). Eles são úteis para relatórios.
from datetime import datetime
d = datetime(2026, 5, 30)
print('Day of year:', d.strftime('%j'))Verificação rápida
Você tem a cadeia de caracteres '2026-05-30'. Qual chamada a converte em um objeto datetime?
Recapitulação: formatação e análise
Lembre-se:
strftime(fmt)transforma uma data e hora em uma cadeia de caracteres.strptime(text, fmt)transforma uma cadeia de caracteres em uma data e hora.- Códigos comuns:
%Y %m %dpara datas,%H %M %Spara horários,%A %Bpara nomes. isoformat()efromisoformat()lidam automaticamente com o padrão ISO.
from datetime import datetime
d = datetime.strptime('2026-05-30 14:05', '%Y-%m-%d %H:%M')
print(d.strftime('%A at %I:%M %p'))Perguntas Frequentes
A aula “Formatação e análise” é grátis?
Sim — o texto completo de “Formatação e análise” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Python Academy, atualize para CoddyKit PRO. O curso de Python Academy inclui 4 aulas no total.
O que vou aprender em “Formatação e análise”?
Use strftime e strptime Você pratica Python Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Python Academy?
Nenhuma experiência prévia é necessária. Python Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Formatação e análise”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Python Academy?
Sim. Cada aula de Python Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- date, time, datetime
- Timedelta e operações aritméticas
- Formatação e análise
- Fusos horários com zoneinfo