Trabalhando com Datas em Python

Um Guia Prático com datetime

Bernardo Lago
Let’s Data

--

Muitos de nós, ao mergulharmos no universo da programação e ciência de dados, encontramos certo conforto ao manipular números e strings. No entanto, quando se trata de datas, as coisas podem ficar um pouco confusas. Em Python, uma das bibliotecas mais poderosas para lidar com datas é o datetime. Neste artigo, vamos desbravar juntos essa ferramenta, mostrando como você pode manipular datas de forma eficiente e sem complicações.

Trabalhando com o Pacote datetime

O pacote datetime do Python é uma ferramenta incrível que nos ajuda a lidar com datas e horários. Seja você um entusiasta de data science, um desenvolvedor backend, ou apenas alguém curioso sobre como trabalhar com datas, você verá que o datetime tem muito a oferecer.

Para começar, é importante entender como criar e manipular objetos de data. Aqui está um exemplo básico:

from datetime import datetime
# Criando um objeto de data para o momento atual
agora = datetime.now()
print(agora)

Output:

2023-10-26 12:34:56.789012

Formatação de Datas

Uma das tarefas mais comuns ao trabalhar com datas é a formatação. Seja para exibir a data de uma forma mais legível para o usuário ou para converter uma string para um objeto de data, o datetime tem ferramentas para ajudar.

Por exemplo, para transformar um objeto de data em uma string formatada, você pode fazer o seguinte:

data_formatada = agora.strftime("%d/%m/%Y %H:%M:%S")
print(data_formatada)

Output:

26/10/2023 12:34:56

E para fazer o caminho inverso, de string para data:

data_str = "01/01/2023 14:30:00"
data_obj = datetime.strptime(data_str, "%d/%m/%Y %H:%M:%S")
print(data_obj)

Output:

2023-01-01 14:30:00

Extraindo Informações de Datas

Às vezes, você pode querer extrair informações específicas de uma data, como o dia, o mês ou o ano. Isso é bastante simples com o datetime. Aqui está um exemplo:

dia = agora.day
mes = agora.month
ano = agora.year
print("Dia:", dia)
print("Mês:", mes)
print("Ano:", ano)

Output:

Dia: 26
Mês: 10
Ano: 2023

Dicas e Truques

Trabalhar com datas pode ser desafiador, mas conhecer alguns truques pode tornar as coisas muito mais fáceis. Aqui estão algumas dicas que podem ajudá-lo a navegar pelo mundo das datas em Python:

Lidando com Fusos Horários

Quando você está trabalhando com datas, é crucial estar ciente dos fusos horários. O Python tem um módulo chamado pytz que pode ajudar a lidar com fusos horários de forma mais eficiente. Aqui está um exemplo de como você pode usar isso:

from datetime import datetime
import pytz
utc_now = datetime.now(pytz.utc)
print("Hora UTC:", utc_now)
local_now = utc_now.astimezone(pytz.timezone('America/Sao_Paulo'))
print("Hora local:", local_now)

Output:

Hora UTC: 2023-10-26 12:34:56.789012+00:00
Hora local: 2023-10-26 09:34:56.789012-03:00

Manipulando Diferenças de Datas

Às vezes, você pode querer calcular a diferença entre duas datas. O datetime torna isso simples:

from datetime import datetime, timedelta
data1 = datetime.now()
data2 = data1 + timedelta(days=5)
diferenca = data2 - data1
print("Diferença de dias:", diferenca.days)

Output

Diferença de dias: 5

Trabalhando com Datas Específicas

Se você precisa criar um objeto de data para uma data específica, você pode fazer isso facilmente:

from datetime import datetime
natal = datetime(2023, 12, 25)
print("Natal:", natal)

Output:

Natal: 2023-12-25 00:00:00

Formatando Datas para Diferentes Culturas

Datas são formatadas de maneiras diferentes em todo o mundo. Saber como formatar datas para diferentes culturas pode ser crucial, especialmente se você estiver desenvolvendo aplicações para um público global.

from babel.dates import format_date
import locale
# Definindo a localidade para Português Brasil
locale.setlocale(locale.LC_TIME, 'pt_BR.UTF-8')
data = datetime.now()
print("Data formatada:", format_date(data, locale='pt_BR'))

Output:

Data formatada: 26 de outubro de 2023

Lembre-se, a prática leva à perfeição. Quanto mais você trabalha com datas, mais confortável você se tornará. E sempre que você ficar preso, a comunidade Python é incrivelmente solidária e está cheia de recursos para ajudá-lo a encontrar o seu caminho.

Conclusão

Neste artigo, exploramos o mundo das datas em Python com o pacote datetime. Vimos como criar e manipular objetos de data, como formatá-los e como extrair informações específicas. Com prática e experimentação, você verá que trabalhar com datas pode ser tão intuitivo quanto trabalhar com qualquer outro tipo de dado em Python.

--

--

Bernardo Lago
Let’s Data

Data Scientist at NielsenIQ. Cofounder at Let’s Data