CodeGym /Cursos Java /Python SELF PT /Biblioteca datetime

Biblioteca datetime

Python SELF PT
Nível 14 , Lição 5
Disponível

9.1 Trabalhando com Data e Hora

Devs frequentemente precisam lidar com datas e horários em seus programas. Então, não é surpresa que em Python, você tem duas bibliotecas padrão para esses casos: datetime e time.

A biblioteca datetime faz parte da biblioteca padrão do Python e oferece classes para trabalhar com datas e horas. Ela permite criar, manipular e formatar datas e horas, além de realizar operações aritméticas com elas.

Principais classes da biblioteca datetime

Classe datetime.date

Esta classe representa uma data (ano, mês, dia) sem horário. É útil para trabalhar com datas de calendário.

Exemplo de uso:


import datetime

# Criando um objeto de data
d = datetime.date(2023, 5, 24)
print(d)  # Saída: 2023-05-24
            
# Obtendo a data atual
today = datetime.date.today()
print(today)
            
# Acessando os atributos de ano, mês e dia
print(d.year)  # Saída: 2023
print(d.month)  # Saída: 5
print(d.day)  # Saída: 24

Classe datetime.time

Esta classe representa o tempo (horas, minutos, segundos, microssegundos) sem data. É útil para trabalhar com horários do dia.

Exemplo de uso:


import datetime

# Criando um objeto de tempo
t = datetime.time(14, 30, 45)
print(t)  # Saída: 14:30:45
            
# Acessando os atributos de horas, minutos e segundos
print(t.hour)  # Saída: 14
print(t.minute)  # Saída: 30
print(t.second)  # Saída: 45

Classe datetime.datetime

Esta classe combina data e hora (ano, mês, dia, horas, minutos, segundos, microssegundos). É útil para trabalhar com momentos específicos no tempo.

Exemplo de uso:


import datetime

# Criando um objeto de data e tempo
dt = datetime.datetime(2023, 5, 24, 14, 30, 45)
print(dt)  # Saída: 2023-05-24 14:30:45
        
# Obtendo a data e o tempo atuais
now = datetime.datetime.now()
print(now)
        
# Acessando os atributos de data e tempo
print(dt.year)  # Saída: 2023
print(dt.month)  # Saída: 5
print(dt.day)  # Saída: 24
print(dt.hour)  # Saída: 14
print(dt.minute)  # Saída: 30
print(dt.second)  # Saída: 45

Classe datetime.timedelta

Esta classe representa a diferença entre dois momentos no tempo, expressa em dias, segundos e microssegundos. É útil para realizar operações aritméticas com datas e horas.

Exemplo de uso:


import datetime

# Criando um objeto timedelta
delta = datetime.timedelta(days=10, hours=5, minutes=30)
print(delta)  # Saída: 10 days, 5:30:00
        
# Adicionando timedelta a uma data
dt = datetime.datetime(2023, 5, 24, 14, 30)
new_dt = dt + delta
print(new_dt)  # Saída: 2023-06-03 20:00:00
        
# Subtraindo timedelta de uma data
earlier_dt = dt - delta
print(earlier_dt)  # Saída: 2023-05-14 09:00:00

4.2 Formatação e Análise de Datas e Horários

Muitas vezes precisamos não só trabalhar com uma data, mas transformá-la em uma string de um certo formato. O processo inverso, quando transformamos uma string em um objeto, é geralmente chamado de análise. Para essas operações, o Python também fornece classes e métodos próprios:

Método strftime()

O método strftime() é usado para formatar objetos datetime em uma string de acordo com um formato especificado.

Exemplo de uso:


import datetime

dt = datetime.datetime(2023, 5, 24, 14, 30, 45)
    
# Formatação de data e hora
formatted_dt = dt.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_dt)  # Saída: 2023-05-24 14:30:45
    
# Formatação apenas de data
formatted_date = dt.strftime("%d-%m-%Y")
print(formatted_date)  # Saída: 24-05-2023
    
# Formatação apenas de tempo
formatted_time = dt.strftime("%H:%M:%S")
print(formatted_time)  # Saída: 14:30:45

Método strptime()

Método strptime() é usado para analisar strings em objetos datetime de acordo com um formato especificado.

Exemplo de uso:


import datetime

# Análise de string em objeto datetime
date_str = "24-05-2023 14:30:45"
dt = datetime.datetime.strptime(date_str, "%d-%m-%Y %H:%M:%S")
print(dt)  # Saída: 2023-05-24 14:30:45
    
# Análise de string em objeto date
date_str = "24-05-2023"
d = datetime.datetime.strptime(date_str, "%d-%m-%Y").date()
print(d)  # Saída: 2023-05-24
    
# Análise de string em objeto time
time_str = "14:30:45"
t = datetime.datetime.strptime(time_str, "%H:%M:%S").time()
print(t)  # Saída: 14:30:45

4.3 Trabalhando com Fusos Horários

Na prática, nossos serviços são utilizados por pessoas ao redor do mundo, e, infelizmente, elas vivem em países diferentes e têm diferentes fusos horários (timezone). Portanto, como programador, você também precisa saber como lidar com eles.

E claro, em Python há uma classe para isso também:

Classe timezone

A classe timezone do módulo datetime permite trabalhar com fusos horários.


import datetime

# Criando um objeto datetime com fuso horário UTC
utc_dt = datetime.datetime(2023, 5, 24, 14, 30, 45, tzinfo=datetime.timezone.utc)
print(utc_dt)  # Saída: 2023-05-24 14:30:45+00:00
        
# Convertendo para outro fuso horário
tokyo_tz = datetime.timezone(datetime.timedelta(hours=9))
tokyo_dt = utc_dt.astimezone(tokyo_tz)
print(tokyo_dt)  # Saída: 2023-05-24 23:30:45+09:00

Discutimos a biblioteca datetime de maneira bem geral, diria até superficialmente. No futuro, vamos voltar a ela e aprender a usá-la para tarefas mais específicas. Por enquanto, queria apenas que você se familiarizasse com ela e ampliasse, por assim dizer, sua visão sobre o conjunto de bibliotecas padrão.

Sobre qualquer biblioteca, você deve primeiro saber que ela existe e imaginar o que pode fazer com ela. A lista de funções, seus parâmetros e todas as suas possibilidades sempre podem ser encontrados na documentação oficial.

1
Опрос
Decoradores,  14 уровень,  5 лекция
недоступен
Decoradores
Decoradores
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION