Calculando a diferença entre duas datas com Python
Overview
Quer saber como calcular o período entre duas datas de um jeito simples e rápido usando Python? Neste post divertido, porém sério, eu vou te guiar através de cada passo necessário para obter a diferença entre duas datas, apresentando um método prático com o módulo datetime. Se você está curioso para descobrir como monitorar o tempo de execução de um serviço, vem comigo!
Neste post mostro como calcular a diferença entre duas datas (datetime) utilizando Python. Utilizo este método para calcular quanto tempo um serviço está sendo executado.
O formato da string com o resultado é nn days, hh:mm:ss.ms
O primeiro passo é importar os pacotes que vamos precisar:
from datetime import datetime
Agora vamos definir as datas que vamos utilizar na operação:
#Initial (oldest) date.
date_init = datetime.strptime("5-8-2000 13:45:10.345", '%d-%m-%Y %H:%M:%S.%f')
#Final (newest) date.
date_final = datetime(year=2018, month=1, day=30)
No fonte acima, criei as duas datas: inicial (date_init) e final (date_final). Para fins didáticos, criei as duas de formas diferentes.
A data inicial (date_init) foi criada utilizando a função strptime, que converte string para datetime, de acordo com o formato que você indicou no segundo argumento. Neste caso, informei uma data com dia, mes, ano (4 caracteres), horas, minutos, segundos e milisegundos.
Já para data final (date_final), criei um objeto datetime passando apenas o ano, mes e dia como argumento. Isso implica em dizer que esta variável não possuirá valores relativos a tempo (h:m:s.f).
O próximo passo é calcular a diferença entre as duas datas:
#Datetime with delta between the two other dates.
date_diff = date_final - date_init
Difícil, né? Então, agora basta converter para string e o valor sairá configurado.
#Printing a in a friendly way.
print("Uptime: %s" % str(date_diff))
Resultado:
>>> Uptime: 6386 days, 10:14:49.655000
Se quiser, este fonte está disponível no nosso Github!
Espero ter ajudado!