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!
Latest posts by Breno RdV (see all)
- O que é Metaclass e como ela funciona. (#python #dev #metaclass) - janeiro 11, 2023
- Entenda a mágica dos Generators. (#python, #dev, #generator, #iterator) - dezembro 28, 2022
- Ordenando um DataFrame por múltiplas colunas. (#python #pandas #jupyter #dev #data) - agosto 3, 2022
Pingback: Convertendo strings em datetime com Python – Raccoon Ninja