🧰 ToolPicoTodas as ferramentas →
InícioBlog › Conversor de timestamp Unix

Timestamp Unix não bate certo? Como converter epoch para data sem erros

Se já copiaste um valor epoch de um log ou de uma resposta de API e não soubeste se estava em segundos ou milissegundos, ou porque a hora aparecia "errada", este guia explica o essencial em poucos minutos — com exemplos numéricos e uma ferramenta gratuita para resolver na hora.

Índice

O que é exatamente um timestamp Unix

Resposta curta: É o número de segundos passados desde 1 de janeiro de 1970, 00:00:00 UTC — um único número que representa um instante exato, sem depender de fuso horário ou calendário.

Um timestamp Unix (também chamado epoch) é o mecanismo que a maioria dos sistemas operativos, bases de dados e linguagens de programação usa internamente para guardar "quando" algo aconteceu. Em vez de guardar "19 de julho de 2026 às 14h30 em Lisboa", guarda um número simples, como 1784551800, que corresponde exatamente a esse instante em UTC. Isto evita ambiguidades com fusos horários e anos bissextos ao comparar ou ordenar datas em código.

Epoch (época Unix)O ponto de partida da contagem: 1 de janeiro de 1970, 00:00:00 UTC. Datas anteriores a essa data representam-se com números negativos.

Um conversor de timestamp Unix faz esta tradução nos dois sentidos: de epoch para data legível, e de data para epoch, mostrando também os formatos ISO-8601 e RFC 2822 lado a lado.

Segundos ou milissegundos? Como saber

Resposta curta: Conta os dígitos. Valores com cerca de 10 dígitos estão em segundos; com cerca de 13 dígitos estão em milissegundos.

Este é o erro mais comum ao trabalhar com timestamps: um valor em milissegundos interpretado como se estivesse em segundos "aterra" numa data completamente errada — normalmente algures no ano 5138, porque o número é 1000 vezes maior do que devia. A tabela seguinte mostra alguns exemplos de referência (valores ilustrativos, para perceberes a escala):

Valor epochUnidadeDígitosData aproximada (UTC)
1700000000Segundos1014 nov. 2023
1700000000000Milissegundos1314 nov. 2023
2147483647Segundos1019 jan. 2038 (limite int32)
1752000000000000Microssegundos16~8 jul. 2025

Uma ferramenta com deteção automática de precisão reconhece a unidade certa pelo número de dígitos, incluindo microssegundos (16 dígitos) e nanossegundos (19 dígitos), mas também podes escolher a precisão manualmente se souberes de antemão de onde veio o valor (por exemplo, Date.now() em JavaScript devolve sempre milissegundos).

Porque é que UTC e hora local mostram valores diferentes

Resposta curta: O número epoch nunca muda — o que muda é apenas como esse instante é apresentado: em tempo universal (UTC), no fuso do teu sistema, ou com um desvio UTC± escolhido manualmente.

É frequente confundir-se "o timestamp está errado" com "a hora exibida não é a que eu esperava". Na realidade, o valor epoch em si é uma âncora fixa relativa a UTC; a conversão para data-hora legível é que aplica um deslocamento consoante o fuso escolhido. Isto é especialmente relevante ao comparar registos (logs) gerados em servidores com fusos diferentes do teu.

Nota prática: Quando precisas de comparar eventos de sistemas distintos, converte sempre para UTC primeiro — só depois converte para o fuso local para leitura humana, se necessário.

Um cenário típico: recebes um epoch de uma API alojada num servidor nos EUA, mas estás em Lisboa. Se visualizares em "Local", a ferramenta ajusta automaticamente ao fuso do teu navegador; se escolheres "UTC", vês o valor universal, útil para comparar com outros registos independentemente de onde foram gerados.

Converter vários timestamps de uma vez

Resposta curta: Em vez de converteres linha a linha, cola a lista inteira (um valor por linha) num modo de conversão em massa e recebe todos os resultados de imediato.

Quando estás a analisar um ficheiro de log com dezenas de timestamps, converter um a um manualmente é lento e propenso a erros. O modo de conversão em massa aceita uma lista de valores epoch (para converter em datas) ou de datas em texto como "2026-07-19 14:30:00" (para converter em epoch), aplica o mesmo fuso horário e direção a todas as linhas, e apresenta um botão de cópia junto a cada resultado.

Além da conversão em massa, existem mini-ferramentas complementares úteis no dia a dia de programação: um intervalo de datas em epoch (início/fim de dia, mês ou ano, ideal para consultas SQL do tipo WHERE ts BETWEEN ... AND ...) e um descodificador de ID snowflake, que extrai a data de criação embutida em IDs do Discord ou do Twitter/X.

Converte epoch ↔ data, em massa e com controlo total de fuso horário — grátis e direto no navegador.

Experimentar o Conversor de timestamp Unix →

Perguntas frequentes

O que é um timestamp Unix (epoch)?
Um timestamp Unix (epoch) é o número de segundos decorridos desde 1 de janeiro de 1970, 00:00:00 UTC. É apenas um número, independente do fuso horário e dos anos bissextos, o que o torna prático para guardar instantes precisos em bases de dados e código. Por exemplo, o epoch 1700000000 corresponde a 14 de novembro de 2023, 22:13:20 UTC.
Qual é a diferença entre epoch em segundos e em milissegundos?
O epoch em segundos tem tipicamente 10 dígitos (ex. 1752000000) e é a unidade Unix clássica. O epoch em milissegundos tem 13 dígitos (ex. 1752000000000) e é o que o JavaScript usa por defeito com Date.now() — vale 1000 vezes mais do que o valor em segundos. Um conversor com deteção automática distingue os dois pelo número de dígitos.
Porque é que a mesma data mostra horas diferentes em UTC e local?
O valor epoch em si é sempre o mesmo número, fixo relativamente a UTC. O que muda é como esse instante é exibido: em UTC vês a hora universal coordenada; em fuso local vês a hora ajustada ao fuso do teu navegador ou sistema, que pode estar horas à frente ou atrás de UTC consoante a região e o horário de verão.
Como converto uma lista grande de timestamps de uma só vez?
Em vez de converter linha a linha manualmente, cola toda a lista (um valor epoch ou uma data por linha) num modo de conversão em massa, escolhe a direção e o fuso horário, e recebe todos os resultados de uma vez, cada um com um botão de cópia.
O que é o problema do ano 2038?
É o transbordo que ocorre em sistemas antigos que guardam o epoch como um inteiro com sinal de 32 bits: depois de 19 de janeiro de 2038, 03:14:07 UTC (epoch 2147483647), o número passa a negativo e a data retrocede até 1901. Sistemas modernos de 64 bits não têm este problema porque conseguem armazenar números muito maiores.

Guias relacionados

Nota: Este artigo tem carácter informativo e explicativo sobre o funcionamento de timestamps Unix; os valores numéricos apresentados são exemplos ilustrativos e não devem ser usados como referência legal, financeira ou de auditoria de sistemas críticos.