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.

Relacionado: Como executar um script Python

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 .

Relacionado: Como funciona o método Python String format ()?

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.