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
strftime
e 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
datetime
usandostrptime()
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
timedelta
para 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}")
datetime
retorna um 'datetime ingênuo' (sem informação de fuso horário) por padrão. Você pode manipular fusos horários explicitamente usando a classetimezone
ouzoneinfo
.
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
date
lida apenas com datas, e a classetime
lida 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.