Ir ao conteúdo

Trabalhando com Data e Hora em Python

Atualizado pela última vez em 11/08/2021

Salve galerinhaaaa, Tudo certo com vocês?

Na ultima semana, eu peguei um trabalho onde eu precisava fazer o calculo de dias e horas com Python. Com algumas pesquisas no Google cheguei a vários resultados, uns realmente bons e outros meio “WTF .-.”.

Logo pensei comigo mesmo, e falei, “vou pesquisar como Python trabalha com horas e desenvolver um algorítimo próprio para isso”, com algumas pesquisas na documentação do python descobri que é mais fácil do que imaginava ser trabalhar com data e hora.

Introdução

No python temos o módulo datetime que provê vários objetos de manipulação de data e hora, como por exemplo date, time, datetime, timedelta, tzinfo e timezone, Neste post iremos falar sobre datetime e timedelta.

Datetime

Combinando todos os atributos de data e hora, nos retorna uma tupla como essa abaixo:

Tupla de Datetime: 2017-12-30 17:04:18.329567

O formato padrão dela é:

  • Ano: 4 Dígitos
  • Mês: 2 Dígitos
  • Dia: 2 Dígitos
  • Hora: 2 Dígitos
  • Minuto: 2 Dígitos
  • Segundos:  2 Dígitos + 6 Casas (para diferenciar os microssegundos)

Timedelta

Representa a duração ou a diferença entre duas datas ou horas. Pode ser representada da seguinte forma:

timedelta (days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

Como por exemplo, retornar uma diferença de 2 horas:

Time delta: 2:00:00

Colocando a mão na massa

Depois de apresentado os objetos que iremos trabalhar, vamos começar a fazer uns testes. Vou comentar linha a linha o que esta acontecendo, e no final, posto o resultado de tudo.

Primeiro criamos nosso arquivo date-hour.py

  • Linha 1: Faço a importação de datetime e timedelta do módulo datetime
  • Linha 3: Pego o datetime atual, guardando na variavel now
  • Linha 5: Printo a tupla gerada na tela
  • Linha 7: Gerei um timedelta de 2 horas e guardei na variavel td
  • Linha 10: Printei a hora atual
  • Linha 11: Printei a soma da hora atual com o timedelta
  • Linha 12: Printei a subtração da hora atual com o timedelta
from datetime import datetime, timedelta

now = datetime.now()

print("Tupla de Datetime: " + str(now))

td = timedelta(hours=2)
print("Time delta: " + str(td) + "\n")

print("Hora Atual " + str(now))
print("+2 horas " + str(now + td))
print("-2 horas " + str(now - td))

Saida dos comandos acima:

Tupla de Datetime: 2017-12-30 17:39:28.446383
Time delta: 2:00:00

Hora Atual 2017-12-30 17:39:28.446383
+2 horas 2017-12-30 19:39:28.446383
-2 horas 2017-12-30 15:39:28.446383

Até a próxima pessoal <3

Publicado emProgramação