1. Obtendo a data e hora atuais
Por que isso é útil?
Como se sabe, tempo é dinheiro. E na programação, também é controle, planejamento e automação. Por exemplo, se você quiser executar uma tarefa em um horário específico ou registrar eventos, precisa saber que o relógio está correndo e como interagir com isso.
Fundamentos do datetime
Então, imagine que estamos começando a trabalhar com a biblioteca datetime. Diferente de criar um foguete espacial, isso é moleza! Vamos começar obtendo a data e hora atuais:
from datetime import datetime
# Obtendo a data e hora atuais
now = datetime.now()
print("Data e hora atuais:", now)
Esse código diz "Ei, datetime, vamos descobrir que horas são agora!" E o mais legal, now() retorna um objeto datetime, que contém todas as informações sobre o momento atual no tempo. Sim, tipo um professor que sabe tudo de uma vez.
Hora local e universal (UTC)
Ah, UTC — o tempo universal que une todos nós sem fusos horários extras. Se você quiser saber a hora exata em Marte (bem, quase isso), o UTC serve. E aqui está como obtê-lo:
# Obtendo a hora atual no formato UTC
now_utc = datetime.utcnow()
print("Data e hora atuais em UTC:", now_utc)
Você deve estar se perguntando, qual é a diferença? A hora local leva em conta seu fuso horário, enquanto o UTC é o horário de Greenwich, independente da localização geográfica.
Extraindo partes da data e hora
Às vezes, não precisamos da data completa, mas apenas de uma parte dela. É como pedir pizza e pegar só o queijo — nem sempre faz sentido, mas às vezes é necessário:
# Extraindo partes individuais da data e hora
year = now.year
month = now.month
day = now.day
hour = now.hour
minute = now.minute
second = now.second
print(f"Agora são {hour}:{minute}:{second} do dia {day}/{month}/{year}")
Assim, podemos trabalhar individualmente com os elementos da data e hora, como, por exemplo, para lembrar um amigo de aniversário (mas só se ele lembrar primeiro).
Exemplos de uso da data e hora atuais
Outra coisa é quando você precisa programar eventos que ocorrem em momentos diferentes. Por exemplo, vamos criar um script básico que parabeniza todos por sexta-feira (porque quem não ama sexta-feira?).
# Exemplo de uso da data atual para um lembrete diário
if now.weekday() == 4: # Sexta-feira
print("Uhul! Hoje é sexta-feira, hora de relaxar!")
else:
print("Espere um pouco mais, a sexta ainda não chegou.")
Esse código usa o método weekday(), que retorna um número de 0 a 6 (onde 0 é segunda-feira, e 6 é domingo), para verificar que dia da semana é hoje e avisar sobre o fim de semana que está chegando.
2. Trabalhando com objetos datetime
Não basta saber que horas são agora, mas também como calcular a diferença entre momentos ou realizar comparações. Por exemplo, como descobrir o quanto você está atrasado para a reunião com seus amigos?
# Exemplo de cálculo da diferença de tempo
from datetime import timedelta
# Criando uma data no passado
past_date = datetime(2023, 1, 1, 10, 0, 0)
# Calculando a diferença entre o horário atual e o passado
difference = now - past_date
print(f"Desde aquele dia memorável passaram-se {difference.days} dias e {difference.seconds // 3600} horas.")
Aqui criamos uma data no passado e comparamos com o presente. Quantos dias passaram desde o Ano Novo? Agora você sabe!
3. Trabalhando com fusos horários
Para trabalhar com fusos horários no datetime, usamos a biblioteca pytz, que permite converter data e hora para o fuso horário necessário.
Exemplo de uso do pytz
from datetime import datetime
import pytz
# Obtendo a data e hora atuais em UTC
utc_now = datetime.now(pytz.utc)
print("Data e hora atuais (UTC):", utc_now)
# Convertendo para outro fuso horário (exemplo, US/Pacific)
pacific_now = utc_now.astimezone(pytz.timezone("US/Pacific"))
print("Data e hora atuais (Horário do Pacífico):", pacific_now)
Saída:
Data e hora atuais (UTC): 2024-11-04 14:53:27.123456+00:00
Data e hora atuais (Horário do Pacífico): 2024-11-04 06:53:27.123456-08:00
GO TO FULL VERSION