Trabalhando com timestamps Unix: hora epoch de forma simples
Atualizado 2026-07-06
Abra uma resposta de API ou uma linha de banco de dados e você vai encontrar, muitas vezes, uma data guardada como um número simples, tipo 1751760000. Isso é um timestamp Unix, e é assim que uma enorme quantidade de software registra o tempo. Este guia explica o que esse número significa, por que computadores contam o tempo assim, e as pegadinhas — segundos vs. milissegundos, fusos horários e o problema do ano 2038.
O que é um timestamp Unix
Um timestamp Unix é o número de segundos decorridos desde um momento fixo chamado epoch: 00:00:00 UTC de 1º de janeiro de 1970. Então 0 é o epoch em si, 60 é um minuto depois, e 1751760000 é um momento de 2025. É só uma contagem contínua de segundos.
Por que contar segundos desde 1970?
Representar o tempo como um único inteiro é enormemente conveniente para computadores. Comparar dois momentos vira comparar dois números; achar o intervalo entre eles é subtração; ordenar eventos é só ordenar inteiros — tudo sem calendários, meses, anos bissextos ou fusos horários para raciocinar. O ponto de partida de 1970 é uma escolha histórica dos primórdios do sistema operacional Unix que simplesmente ficou.
A pegadinha de segundos vs. milissegundos
Este é o erro que quase todo mundo comete pelo menos uma vez. Timestamps Unix são classicamente em segundos, mas muitos sistemas — o JavaScript em particular — usam milissegundos (milésimos de segundo). Os dois diferem por um fator de 1000:
segundos: 1751760000 milissegundos: 1751760000000
Passe um valor em segundos para algo que espera milissegundos e sua data cai em 1970; faça o contrário e ela cai dezenas de milhares de anos no futuro. A checagem rápida: um timestamp atual em segundos tem 10 dígitos; em milissegundos, 13. Quando uma data convertida parece absurda, quase sempre é por isso.
Fusos horários e UTC
Uma força-chave dos timestamps Unix: o número em si está sempre em UTC. Ele representa um instante exato, o mesmo para todos na Terra. O timestamp 1751760000 é um único momento; que ele apareça como 16h em Londres ou 11h em Nova York é puramente uma escolha de exibição aplicada no final. Guardar o tempo como timestamp UTC e converter para hora local só ao exibir evita uma categoria inteira de bugs de fuso horário. Para ver o mesmo instante em regiões diferentes, um conversor de fusos horários é a ferramenta certa.
Converter para e de datas humanas
Você vai precisar o tempo todo ir nos dois sentidos — transformar um timestamp numa data legível para depurar um log, ou uma data num timestamp para consultar uma API. Nosso conversor de timestamp Unix faz ambos na hora e mostra o resultado na sua hora local e em UTC. Para medir, em vez disso, o intervalo entre duas datas, a calculadora de diferença de datas resolve direto.
O problema do ano 2038
Sistemas mais antigos guardam o timestamp como um inteiro de 32 bits com sinal, que só consegue contar até 2.147.483.647. Esse teto é alcançado às 03:14:07 UTC de 19 de janeiro de 2038 — um segundo depois o contador estoura e dá a volta para um número negativo, jogando as datas de volta para 1901. É a mesma classe de bug do Y2K. A correção já é difundida: usar um inteiro de 64 bits, que empurra o limite uns 292 bilhões de anos adiante. A maior parte do software moderno está bem, mas vale saber ao mexer em sistemas legados.
Referência rápida
- Um timestamp Unix = segundos desde 1º de janeiro de 1970 UTC.
- 10 dígitos = segundos; 13 dígitos = milissegundos.
- O valor é sempre UTC — aplique fusos horários só ao exibir.
- Armazenamento de 32 bits quebra em 2038; o de 64 bits não.
Mais de Web & desenvolvedor
Ver todos os guias de Web & desenvolvedor →Ferramentas mencionadas neste guia