Como usar o módulo de tempo do Python
O módulo de tempo do Python oferece uma ampla variedade de recursos relacionados ao tempo e geralmente é útil ao construir seu back-end com Python. Usando esta biblioteca, você pode buscar a hora e data atuais em formatos padrão. Você pode calcular diferenças de tempo e agendar operações específicas de tempo em seu código.
Com exemplos práticos, vamos mostrar algumas das maneiras mais úteis de usar a biblioteca de tempo.
Primeiros passos com a biblioteca de tempo
O módulo de tempo é um dos tesouros mais intrigantes do versátil repositório de bibliotecas do Python. Ele é integrado ao Python, portanto, você não precisa instalá-lo separadamente. Você só precisa importá-lo em seu código para começar a usá-lo.
Embora a biblioteca de tempo do Python tenha muitos métodos e possa parecer opressor no início, vamos nos concentrar naqueles que você provavelmente usará com mais frequência.
Para começar a usar o módulo de tempo , importe-o em seu script com a seguinte instrução:
import time
Obtenha a época padrão
A assinatura de época da biblioteca de tempo começa no primeiro dia e hora de 1970 em sistemas Unix por padrão. No entanto, isso depende da plataforma. Portanto, a época ou a hora e a data de início podem ser diferentes, dependendo do sistema operacional que você está usando.
Para visualizar a época padrão em seu sistema operacional:
import time
default_base = time.gmtime(0)
print(default_base)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1,
tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3,
tm_yday=1, tm_isdst=0)
A saída da tupla acima (um objeto do tipo time.struct_time ) contém a estrutura de tempo do módulo de tempo . É onde a biblioteca armazena detalhes de data e hora por padrão. A partir do resultado, tm_year remonta a 1970, com algumas outras propriedades tendo zero como seu valor padrão. A propósito, gmtime retorna o horário de Greenwich, que pode ser diferente do seu fuso horário local.
Você pode obter a época local usando time.localtime () em vez disso:
import time
default_base = time.localtime(0)
print(default_base)
Executar o código acima pode alterar os valores de propriedades individuais, dependendo do seu fuso horário local. Por exemplo, durante o horário de verão britânico no Reino Unido, tm_hour será "1" em vez de "0" do GMT.
Veja a hora atual e detalhes de data
Para obter a hora atual como um objeto time.struct_time , chame time.gmtime () sem nenhum argumento:
import time
current_time = time.gmtime()
print(current_time)
time.struct_time(tm_year=2021, tm_mon=10, tm_mday=2,
tm_hour=11, tm_min=13, tm_sec=18, tm_wday=5,
tm_yday=275, tm_isdst=0)
Como você fez nos exemplos anteriores, substitua time.gmtime () por time.localtime () para ver sua hora local atual.
Calcule o tempo entre a época e a hora atual
Use a função time.time () para ver o número de segundos entre a hora atual e a época:
import time
print("Time difference in seconds:", time.time())
Time difference in seconds: 1633178361.142249
Para ver a diferença do ano:
import time
# Calculate the number of years:
print("Year difference is approximately:", round(time.time() / (3600 * 365 * 24)), "years")
Year difference is approximately: 52 years
Extraia a hora local atual
Muitas vezes não é necessário na prática, mas você pode acessar cada um dos valores em um objeto time.struct_time acessando suas propriedades diretamente.
Por exemplo, para obter a hora, minuto e ano atuais a partir da hora local atual:
import time
current_local_time = time.localtime()
hours = current_local_time.tm_hour
mins = current_local_time.tm_min
year = current_local_time.tm_year
print(("The local time and year detail are: {}th hour, {}mins, and year {}").format(hours, mins, year))
The local time and year detail are: 11th hour, 49mins, and year 2021
Para automatizar a saída em vez de codificá-la como fizemos acima, você pode gerar a hora local atual usando a função time.ctime () .
Veja como ver a hora local atual usando time.ctime () :
import time
print(time.ctime())
Sat Oct 2 13:58:07 2021
Mas a opção acima não oferece nenhum controle sobre a saída.
Para manipular a saída, você pode definir o formato da hora usando time.strftime () com anotações de string:
import time
current_local_time = time.localtime()
# Get the current local time:
current_local_time = time.localtime()
# Stringify the current local time using string annotations:
dtime = time.strftime("The date and time is: %a, %d-%b-%Y, %I:%M %p", current_local_time)
print(dtime)
The date and time is: Sat, 02-Oct-2021, 11:57 AM
No código acima, % a representa o nome abreviado do dia atual. O % p representa manhã ou tarde, em sua localidade. Em inglês, isso se traduz em AM ou PM .
Você pode dar uma olhada em todas as anotações de string possíveis para strftime () na documentação do Python em seu tempo livre. Sinta-se à vontade para ajustá-los como desejar, para formatar um horário de acordo com seus requisitos específicos. Você pode experimentar adicionando mais opções de string ao exemplo acima e vendo o que elas geram. Por exemplo, você pode substituir % I por % H para obter um formato de 24 horas da hora atual.
Programar código com o módulo de tempo do Python
Você pode atrasar a execução do código usando a função time.sleep () . Esta função pode ser útil quando você precisa agendar solicitações ou executar um programa multithread usando Python.
Vamos ver como isso funciona:
import time
time.sleep(3)
print("This post will show after 3 seconds")
Observe que time.sleep () só aceita argumentos float e inteiros, que são convertidos em segundos. Portanto, se você estiver programando para a próxima hora ou minuto, precisará convertê-los para segundos.
Para atrasar a produção em uma hora, por exemplo:
time.sleep(3600)
print("This post will show after an hour")
Crie um cronômetro de contagem regressiva usando time.sleep ()
Usando a função time.sleep () e Python para loop , vamos criar um cronômetro de contagem regressiva que aceite a entrada de um usuário:
import time
print("Start counting seconds from:")
# Create a timer input field that accepts an integer
timer = int(input())
# Increment the timer so that it starts at the specified input
timer = range(timer + 1)
# Assign the length of the timer to a new variable =>
# Then remove one from timer's length to match its index
v = len(timer) - 1
for i in timer:
# Increment the time every one second
time.sleep(1)
# Concatenate the previous count with the next count
# to prevent new line at each iteration
print(timer[v], end = " ", flush=True)
print("", end = "", flush=True)
# Decrease the length of timer input by one for each iteration
v -= 1
Quando você executa o código acima e define o valor do tempo, ele diminui o valor especificado a cada segundo até chegar a zero.
Faça uso adequado da biblioteca de tempo do Python
Agora você sabe como acessar a hora atual do seu código Python e manipular a saída de hora e data. O módulo de tempo também é uma ferramenta valiosa para rastrear solicitações no servidor quando você usa Python para programação de back-end.
E como as saídas são em sua maioria números inteiros ou flutuantes, você pode operá-las como quiser para obter seu tempo em horas, dias, meses ou anos.