Dominando o Módulo time do Python: Funções, Structs e Exemplos Práticos
Módulo time do Python
Explore o módulo padrão time do Python, aprenda suas funções principais e veja exemplos claros que demonstram uso real.
O módulo time do Python fornece ferramentas para trabalhar com timestamps, agendamento e medição de tempo decorrido. Antes de usar qualquer função, importe o módulo:
import time
time.time()
A função time() retorna a hora atual em segundos desde a época Unix (00:00:00 UTC em 1 de janeiro de 1970). Em sistemas Unix-like, esse valor de época é fixo; no Windows, é derivado do mesmo ponto.
import time
seconds = time.time()
print("Segundos desde a época =", seconds)
time.ctime()
Converte um timestamp POSIX (segundos desde a época) em uma string legível no fuso horário local.
import time
seconds = 1545925769.9618232
local_time = time.ctime(seconds)
print("Hora local:", local_time)
Saída típica:
Hora local: Thu Dec 27 15:49:29 2018
time.sleep()
Atrasa a execução da thread atual pelo número especificado de segundos.
import time
print("Isto é impresso imediatamente.")
time.sleep(2.4)
print("Isto é impresso após 2.4 segundos.")
Para mais detalhes, consulte a documentação do Python sleep().
Classe time.struct_time
Funções como gmtime() e asctime() retornam ou aceitam um objeto time.struct_time, uma tupla de 9 elementos representando um tempo de calendário.
time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=6, tm_min=35, tm_sec=17, tm_wday=3, tm_yday=361, tm_isdst=0)
| Índice | Atributo | Valores |
|---|---|---|
| 0 | tm_year | 0000 … 9999 |
| 1 | tm_mon | 1 … 12 |
| 2 | tm_mday | 1 … 31 |
| 3 | tm_hour | 0 … 23 |
| 4 | tm_min | 0 … 59 |
| 5 | tm_sec | 0 … 61 |
| 6 | tm_wday | 0 (Seg) … 6 (Dom) |
| 7 | tm_yday | 1 … 366 |
| 8 | tm_isdst | 0, 1 ou -1 |
Você pode acessar elementos tanto por índice quanto por nome de atributo.
time.localtime()
Converte um timestamp POSIX em um struct_time expresso no fuso horário local. Se omitido, usa a hora atual.
import time
result = time.localtime(1545925769)
print("resultado:", result)
print("\nano:", result.tm_year)
print("tm_hour:", result.tm_hour)
Saída típica:
resultado: time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=15, tm_min=49, tm_sec=29, tm_wday=3, tm_yday=361, tm_isdst=0) ano: 2018 tm_hour: 15
time.gmtime()
Igual ao localtime(), mas retorna tempo UTC (GMT). Argumento omitido usa o valor de época atual.
import time
result = time.gmtime(1545925769)
print("resultado:", result)
print("\nano:", result.tm_year)
print("tm_hour:", result.tm_hour)
Saída típica:
resultado: time.struct_time(tm_year=2018, tm_mon=12, tm_mday=28, tm_hour=8, tm_min=44, tm_sec=4, tm_wday=4, tm_yday=362, tm_isdst=0) ano: 2018 tm_hour: 8
time.mktime()
Converte um struct_time local (ou sua tupla de 9 elementos) de volta em um timestamp POSIX. É efetivamente o inverso de localtime().
import time
t = (2018, 12, 28, 8, 44, 4, 4, 362, 0)
local_time = time.mktime(t)
print("Hora local:", local_time)
Exemplo mostrando a viagem de ida e volta:
import time
seconds = 1545925769
t = time.localtime(seconds)
print("t1:", t)
s = time.mktime(t)
print("\ns:", s)
Saída típica:
t1: time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=15, tm_min=49, tm_sec=29, tm_wday=3, tm_yday=361, tm_isdst=0) s: 1545925769.0
time.asctime()
Formata um struct_time (ou tupla) em uma string legível.
import time
t = (2018, 12, 28, 8, 44, 4, 4, 362, 0)
result = time.asctime(t)
print("Resultado:", result)
Saída típica:
Resultado: Fri Dec 28 08:44:04 2018
time.strftime()
Formata um struct_time em uma string personalizada baseada em códigos de formato.
import time
named_tuple = time.localtime()
time_string = time.strftime("%m/%d/%Y, %H:%M:%S", named_tuple)
print(time_string)
Saída típica:
12/28/2018, 09:47:41
Códigos de formato comuns incluem:
%Y– ano completo (ex: 2018)%m– mês 01–12%d– dia 01–31%H– hora 00–23%M– minuto 00–59%S– segundo 00–61 (segundos bissextos)
Para mais códigos de formato, consulte a documentação do time.strftime().
time.strptime()
Analisa uma string de acordo com um formato especificado e retorna um struct_time.
import time
time_string = "21 June, 2018"
result = time.strptime(time_string, "%d %B, %Y")
print(result)
Saída típica:
time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=172, tm_isdst=-1)
python
- Palavras-chave e Identificadores em Python: Dominando Palavras Reservadas e Convenções de Nomenclatura
- Dominando Tipos de Dados em Python: Guia Prático
- Dominando Operadores em Python: Guia Completo
- Dominando Argumentos de Funções em Python: Parâmetros Posicionais, Nomeados e Padrão
- Módulos em Python: Criação, Importação e Uso Avançado
- Dominando Dicionários em Python: Criação, Manipulação e Técnicas Avançadas
- Expressões Regulares em Python (Módulo re) – Guia Prático
- Obter Data e Hora Atuais em Python: Guia Prático
- Python: Obter Hora Atual e Dados de Fuso Horário com Facilidade
- Dominando time.sleep() do Python: Boas Práticas, Multithreading e Exemplos Reais