Dominando Datas e Horas em Python: Guia Prático
Python oferece múltiplas formas de lidar com data e hora. Os módulos time e calendar são essenciais para manipulação de timestamps, conversões e calendários.
O que é Tick?
Intervalos de tempo são representados como números de ponto flutuante em segundos. Instantes específicos são expressos em segundos desde a epoch (00:00:00 de 1º de janeiro de 1970 UTC). A função time.time() retorna o tempo atual em ticks.
import time
ticks = time.time()
print("Ticks desde a epoch:", ticks)
Saída típica:
Ticks desde a epoch: 17186862.73399
Limitações: Datas antes de 1970 ou muito distantes no futuro (após 2038 em sistemas de 32 bits) não podem ser representadas como ticks.
Tupla de Tempo (TimeTuple)
Muitas funções do módulo time usam uma tupla de 9 inteiros (equivalente a struct_time):
| Índice | Campo | Valores |
|---|---|---|
| 0 | Ano (4 dígitos) | 2024 |
| 1 | Mês | 1 a 12 |
| 2 | Dia | 1 a 31 |
| 3 | Hora | 0 a 23 |
| 4 | Minuto | 0 a 59 |
| 5 | Segundo | 0 a 61 (60/61 = segundos bissextos) |
| 6 | Dia da semana | 0 a 6 (0 = segunda-feira) |
| 7 | Dia do ano | 1 a 366 (dia juliano) |
| 8 | Horário de verão | -1, 0, 1 (-1 = biblioteca decide) |
Obtendo o Tempo Atual
import time
tempo_local = time.localtime(time.time())
print("Tempo local:", tempo_local)
Formatando Tempo
time.asctime() converte uma tupla de tempo em string legível:
print(time.asctime(time.localtime(time.time())))
Tue Jan 13 10:17:09 2009
Calendários
O módulo calendar gera calendários mensais/anuais:
import calendar
print(calendar.month(2008, 1))
Principais Funções do Módulo time
| Função | Descrição |
|---|---|
time.sleep(segundos) | Suspende a thread por segundos. |
time.strftime(formato, tupla) | Formata tupla de tempo conforme string de formato. |
time.strptime(string, formato) | Parseia string para tupla de tempo. |
time.mktime(tupla) | Converte tupla local para segundos desde a epoch. |
time.gmtime(segundos) | Converte segundos para tupla UTC. |
time.localtime(segundos) | Converte segundos para tupla local. |
Atributos Importantes
time.timezone– deslocamento (em segundos) do fuso local sem DST em relação a UTC.time.tzname– tupla com nomes do fuso sem e com DST.
Módulo calendar – Funções Úteis
| Função | Descrição |
|---|---|
calendar.month(ano, mes) | String com calendário do mês. |
calendar.monthrange(ano, mes) | Retorna (dia_da_semana_inicial, dias_no_mês). |
calendar.isleap(ano) | True se ano bissexto. |
calendar.weekday(ano, mes, dia) | Dia da semana (0=segunda). |
calendar.setfirstweekday(dia) | Define primeiro dia da semana (0=segunda). |
Outros Módulos Relevantes
datetime– manipulação orientada a objetos de datas/horas.pytz– fusos horários precisos.dateutil– parsing flexível e operações avançadas.
python
- Dominando Tipos de Dados em Python: Guia Prático
- Dominando Operadores em Python: Guia Completo
- Dominando a Declaração Pass em Python: Guia Prático
- Dominando Argumentos de Funções em Python: Parâmetros Posicionais, Nomeados e Padrão
- Dominando Dicionários em Python: Criação, Manipulação e Técnicas Avançadas
- Dominando datetime do Python: Guia Prático de Datas, Horários e Fusos Horários
- Obter Data e Hora Atuais em Python: Guia Prático
- Python: Obter Hora Atual e Dados de Fuso Horário com Facilidade
- Dominando o Módulo time do Python: Funções, Structs e Exemplos Práticos
- Dominando time.sleep() do Python: Boas Práticas, Multithreading e Exemplos Reais