Manipulação de Datas em Python
Este artigo explica a manipulação de datas em Python.
YouTube Video
Manipulação de Datas em Python
A manipulação de datas em Python utiliza principalmente o módulo datetime. Este módulo oferece diversas classes e funções para manipular datas e horários.
Abaixo estão alguns exemplos de manipulação básica de datas usando o módulo datetime.
Obtendo Data e Hora
Você pode obter a data e hora atual da seguinte forma. datetime.now() e datetime.today() retornam quase o mesmo resultado, mas pode haver diferenças em como eles lidam com fusos horários.
1from datetime import datetime
2
3# Get the current date and time
4now = datetime.now()
5print(f"Current date and time: {now}")
6
7# Get today's date only
8today = datetime.today()
9print(f"Today's date: {today.date()}")- Este código obtém e exibe a data e hora atual, assim como somente a data de hoje.
Criando Datas e Horários Específicos
Você pode criar uma data e hora específica da seguinte maneira.
1from datetime import datetime
2
3# Create a specific date and time
4specific_date = datetime(2023, 11, 7, 10, 30, 45)
5print(f"Specified date and time: {specific_date}")- Este código cria e exibe a data e hora especificada (7 de novembro de 2023, 10:30:45).
Formatando Datas
A formatação de datas pode ser feita da seguinte maneira.
1from datetime import datetime
2
3now = datetime.now()
4
5# Format the date
6formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
7print(f"Formatted date and time: {formatted_date}")- Este código obtém a data e hora atual, formata para o formato especificado usando
strftimee exibe.
Strings de formatação de data
%Y: Ano (4 dígitos)%m: Mês (01 a 12)%d: Dia (01 a 31)%H: Hora (00 a 23)%M: Minuto (00 a 59)%S: Segundo (00 a 59)
Análise de strings de data
Você pode converter uma string que representa uma data em um objeto datetime.
1from datetime import datetime
2
3date_string = "2023-11-07 10:30:45"
4parsed_date = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
5print(f"Parsed date and time: {parsed_date}")- Este código converte uma data representada como string em um objeto
datetimeusandostrptime()e exibe.
Cálculos com Datas
Operações com datas podem ser realizadas da seguinte forma.
1from datetime import datetime, timedelta
2
3now = datetime.now()
4
5# Date for one day later
6tomorrow = now + timedelta(days=1)
7print(f"Date for one day later: {tomorrow}")
8
9# Date for one week ago
10last_week = now - timedelta(weeks=1)
11print(f"Date for one week ago: {last_week}")
12
13# Time for two hours later
14in_two_hours = now + timedelta(hours=2)
15print(f"Time for two hours later: {in_two_hours}")- Este código utiliza
timedeltapara adicionar ou subtrair dias e horas da data e hora atual, calculando e exibindo a data e hora para amanhã, uma semana atrás e duas horas depois.
Manipulação de fusos horários
Você também pode lidar com fusos horários usando o módulo datetime.
1from datetime import datetime, timezone, timedelta
2
3# Current UTC time
4utc_now = datetime.now(timezone.utc)
5print(f"Current UTC time: {utc_now}")
6
7# JST (UTC+9)
8jst = timezone(timedelta(hours=9))
9jst_now = datetime.now(jst)
10print(f"Current JST time: {jst_now}")datetimeretorna um 'datetime ingênuo' (sem informação de fuso horário) por padrão. Você pode manipular fusos horários explicitamente usando a classetimezoneouzoneinfo.
A classe date e a classe time
Com o módulo datetime, você também pode manipular apenas datas ou apenas horários.
1from datetime import date, time
2
3d = date(2023, 11, 7)
4t = time(10, 30, 45)
5
6print(f"Date only: {d}")
7print(f"Time only: {t}")- A classe
datelida apenas com datas, e a classetimelida apenas com horários.
Conversão entre datetime e timestamp
É possível a conversão entre timestamps UNIX e objetos datetime. Aqui, um timestamp UNIX refere-se ao número de segundos decorridos desde 1º de janeiro de 1970.
1from datetime import datetime
2
3now = datetime.now()
4
5# datetime → timestamp
6timestamp = now.timestamp()
7print(f"Timestamp: {timestamp}")
8
9# timestamp → datetime
10restored = datetime.fromtimestamp(timestamp)
11print(f"Restored datetime: {restored}")- Este código converte a data e hora atual para um timestamp UNIX, e então usa a função
fromtimestamp()para converter esse timestamp de volta para um objetodatetime.
Erros comuns
Ao usar o módulo datetime, você deve estar atento aos seguintes pontos.
datetime.now()não considera fusos horários, então para internacionalização, é necessário usar explicitamentetimezone.utc.- Tenha cuidado para não confundir
%m(mês) e%M(minuto) em strings de formatação.
Resumo
O módulo datetime também oferece muitos outros recursos para manipulação flexível de datas e horários. Além disso, classes como date, time e timedelta estão disponíveis e são especializadas para operações específicas.
O uso de outras bibliotecas também permite uma manipulação mais avançada de datas. Por exemplo, o pandas é especializado em lidar com dados de séries temporais, enquanto o dateutil é adequado para análises complexas de datas. Além disso, a biblioteca arrow também é útil.
Você pode acompanhar o artigo acima usando o Visual Studio Code em nosso canal do YouTube. Por favor, confira também o canal do YouTube.