Ao trabalhar com datas e horas em Python, muitas vezes você precisará calcular a diferença de horário. Neste tutorial, você aprenderá como calcular a diferença entre dois timestamps em horas, minutos e segundos.
Ao final deste tutorial, você terá aprendido:
- como usar o Python
datetime
módulo para trabalhar com datas e horas, - que
timedelta
objetos são, e como eles são úteis, e - calcule a diferença de tempo entre quaisquer dois timestamps – em horas, minutos e segundos.
Vamos começar.
Como usar o módulo datetime do Python
Para trabalhar com datas e horas em Python, você usará o datetime
módulo. o datetime
módulo faz parte da biblioteca padrão do Python. Então você pode ir em frente e importá-lo para o seu ambiente de trabalho imediatamente, assim:
import datetime
Para calcular a diferença de tempo, você precisa criar dois timestamps diferentes. Você pode optar por criar:
- dois
date
objetos, - dois
time
objetos, ou - uma combinação de ambos
date
etime
—datetime
objetos.
Como criar um objeto de data em Python
Vamos importar o date
classe do módulo datetime. Para criar um objeto de data em Python, você pode usar a sintaxe geral datetime.date(<year>,<month>,<day>)
. Aqui está um exemplo de criação de um date
objeto date1
:
from datetime import date
date1 = datetime.date(2022,3,27)
print(date1)
# Output: 2022-03-27
Você pode tentar o código no Compilador Tecnologico Python testar. Ou, instalar Python no seu computador.
Como mostrado acima, quando você imprime a data, ela é formatada no YYYY-MM-DD
formato para datas.
Observação : certifique-se de especificar o mês como um número inteiro sem nenhum zeros à esquerda. É provável que você esteja acostumado a adicionar um zero à esquerda ao mês ao anotar as datas.
Por exemplo, para especificar uma data em junho, o 6º mês do ano: use 6 e não 06.
Por exemplo, tente executar o seguinte trecho de código – onde o mês foi mencionado como 03
em vez de apenas 3
. Você verá que ele lança um erro de sintaxe como mostrado:
date1 = datetime.date(2022,03,27)
print(date1)
# Error Message
File "<ipython-input-12-6eb72084e6ce>", line 1
date1 = datetime.date(2022,03,27)
^
SyntaxError: invalid token
Vamos agora ver como criar um time
objeto em Python.
Como criar um objeto de tempo em Python
Para criar um objeto de tempo, vamos importar o time
classe. Qualquer objeto de tempo do Python pode ser criado usando o time
class especificando os seguintes atributos de classe: hour
, minute
, second
e microsecond
.
No entanto, todos esses atributos são opcional. Se você não especificar um determinado atributo, digamos, second
está definido para 0
por padrão.
O trecho de código a seguir mostra como você pode criar um objeto de tempo time1
. Tal como acontece com o date
objeto, você pode imprimir o time
objeto para ver a hora formatada.
from datetime import time
time1 = datetime.time(13,27,45,4600)
print(time1)
# Output: 13:27:45.004600
Como criar um objeto datetime em Python
Como você pode ver, o date
O objeto não tem informações sobre o tempo. E a time
objeto não contém informações sobre a data.
No entanto, na prática, você precisará das informações de data e hora. Portanto, é recomendável usar o datetime
classe em vez disso.
Você pode acessar o datetime
classe e criar datetime
objetos em Python, conforme mostrado abaixo:
dt1 = datetime.datetime(2022,3,27,13,27,45,46000)
print(dt1)
# Output: 2022-03-27 13:27:45.046000
Vamos agora criar outro objeto datetime dt2
sem o second
atributo. Você pode ver que está definido para 0
– o valor padrão.
dt2 = datetime.datetime(2022,6,30,14,28)
print(dt2)
# Output: 2022-06-30 14:28:00
Até agora você aprendeu como criar carimbos de data/hora em Python — como datas, horas e datas e horas. Agora é hora de ver como você pode calcular a diferença entre quaisquer dois timestamps.
Vá para a próxima seção para descobrir.
Como usar o objeto timedelta em Python
Em Python, timedelta
denota um intervalo de tempo. É a diferença entre dois date
, time
ou datetime
objetos.
Se você adicionar ou subtrair dois date
, time
ou datetime
objetos, você obterá um timedelta
objeto. Esta timedelta
O objeto tem atributos e métodos úteis que podem ajudar a calcular a diferença de horário.
Vamos em frente e calcular a diferença entre os dois datetime
objetos dt1
e dt2
.
dt1 = datetime.datetime(2022,3,27,13,27,45,46000)
dt2 = datetime.datetime(2022,6,30,14,28)
tdelta = dt2 - dt1
print(tdelta)
print(type(tdelta))
# Output
95 days, 1:00:14.954000
<class 'datetime.timedelta'>
No trecho de código acima, você pode ver que o tdelta
variável contém a diferença de tempo entre dt1
e dt2
. E o tipo de tdelta
é verificado como sendo da classe timedelta
usando o built-in do Python type()
função.
Agora vamos codificar outro exemplo.
Como encontrar a diferença de tempo entre duas datas
Vamos dar um exemplo simples, mas interessante.
Problema : Para calcular o diferença de tempo entre a data atual (hoje) e seu aniversário.
Para fazer isso, defina hoje como o primeiro timestamp, e seu aniversário como o segundo carimbo de data/hora.
Como primeiro passo, vamos criar dois datetime
objetos:
- um para hoje, vamos chamá-lo
today
e - outro para o seu aniversário, vamos chamá-lo
bday
o datetime
classe tem o now()
método que fornece a data e hora locais atuais. Então, vamos usá-lo obter today
—nossa data de referência.
today = datetime.datetime.now()
print(today)
# Sample Output: 2022-01-22 09:10:18.489538
No código abaixo, substitua bday
com o seu aniversário para calcular o tempo restante para o seu aniversário este ano.
Se você estiver lendo isso depois do seu aniversário, sinta-se à vontade para definir bday
para o seu próximo aniversário.
bday = datetime.datetime(2022,8,30,11,59)
print(bday)
# Sample Output: 2022-08-30 11:59:00
O próximo passo é calcular time_diff
que é um timedleta
objeto, conforme explicado anteriormente. Simplesmente subtraia today
de você bday
e você terá a diferença de horário.
time_diff = bday - today
print(f"Your birthday is in {time_diff}")
# Output
Your birthday is in 220 days, 2:46:00.127416
Para saber quantos dias faltam, use o atributo days em time_diff
como mostrado:
tdays = time_diff.days
print(f"Your birthday is in {tdays} days.")
# Output
Your birthday is in 220 days.
Como encontrar a diferença de tempo em segundos
Vamos agora calcular quantos segundos faltam para o seu aniversário.
Para calcular a diferença de tempo total em segundos, use o total_seconds()
método no timedelta
objeto time_diff
.
tsecs = time_diff.total_seconds()
print(f"Your birthday is {tsecs} seconds away.")
# Output
Your birthday is 19017960.127416 seconds away.
Bem, isso é muito tempo de espera!
Dito isso, agora você sabe como calcular a diferença de tempo entre quaisquer dois timestamps em segundos.
Vamos agora revisitar alguns princípios básicos e anotar o seguinte. Um dia é composto por 24 horas, uma hora tem 60 minutos e 60 segundos compõem um minuto.
Isso está resumido na imagem abaixo:
Portanto, para converter de segundos para minutos, horas e dias, você pode usar a tabela a seguir e dividir pelo fator de conversão correspondente.

Nas próximas seções, vamos converter a diferença de tempo em segundos para minutos e horas.
Como encontrar a diferença de tempo em minutos
Para obter a diferença de tempo em minutos, basta dividir o total de segundos por 60.
vamos dividir tsecs
por 60, e armazená-lo em uma variável chamada tmins
como isso:
tmins = tsecs/60
print(f"Your birthday is {tmins} minutes away.")
# Output
Your birthday is 316966.0021236 minutes away.
Como encontrar a diferença de tempo em horas
Agora que você calculou a diferença de tempo em minutos, pode dividi-la por um fator de 60 para obter a diferença em horas. Ou você pode dividir o total de segundos por 60*60 = 3600.
thrs = tsecs/(60*60)
print(f"Your birthday is {thrs} hours away.")
# Output
Your birthday is 5282.76670206 hours away.
Agora você aprendeu como calcular a diferença de tempo em qualquer unidade de sua escolha.
Conclusão
Neste tutorial, você aprendeu como:
- criar e trabalhar com datas e horas usando Python
datetime
módulo, - usar
timedelta
objetos para obter um período de tempo, ou diferença de tempo, e - calcular a diferença de tempo em segundos, minutos e horas.
Espero que você tenha achado este tutorial útil. Agora que você sabe tudo sobre como calcular a diferença de tempo em Python, é hora de coloque suas habilidades em prática .
Feliz aprendizado e codificação!
Aprenda a escrever igual ou diferente do código ou faça um jogo de cobra em python aqui.