Conversor de Timestamp Unix
Conversor de timestamp Unix — cole qualquer epoch (segundos ou milissegundos, detectados automaticamente) e obtenha uma data legível em UTC e no seu fuso horário local. Funciona no navegador, sem enviar nada.
Sobre o conversor de timestamp Unix
Um timestamp Unix (também chamado de epoch time ou POSIX time) é o número de segundos decorridos desde 1970-01-01 00:00:00 UTC, sem contar os segundos bissextos. É a língua franca da contagem de tempo em computação — todo servidor Linux, payload de API REST, token JWT, linha de banco de dados e linha de log armazena o tempo assim, porque um único inteiro com sinal é portátil, comparável e livre de fuso horário. Desenvolvedores e SREs esbarram em timestamps o tempo todo: rastreando um stack trace, reproduzindo um webhook, alinhando dois eventos entre servidores em regiões diferentes, ou provando que uma linha foi escrita antes de um deploy. Este conversor lida com todas as variantes comuns em um único campo de entrada. Ele detecta automaticamente a unidade pelo número de dígitos — 10 dígitos são segundos, 13 são milissegundos (JavaScript Date.now()), 16 são microssegundos (Python time.time_ns()/1000), 19 são nanossegundos (Go time.Now().UnixNano()). Também mantém seus dados na sua máquina: timestamps de logs podem vazar sem querer ids de requisição, ids de cliente e horários de incidentes, então nunca enviamos o que você cola — os cálculos acontecem no seu navegador. Para o trabalho prático, cobre as situações que você realmente encontra às 2h da manhã. Colar um número da resposta de uma API JSON, um ObjectId do MongoDB, um extract(epoch from now()) do Postgres, um registro do Cloudflare ou um cabeçalho de log do Kafka mostra na hora a qual momento ele se refere, em UTC e no seu fuso horário local. Ir na direção oposta — de data para timestamp — é igualmente rápido: escolha uma data, copie o valor em segundos para date +%s, MySQL UNIX_TIMESTAMP() ou iat/exp de JWT. A confusão entre segundos e milissegundos é o erro mais comum aqui, por isso o número de dígitos é exibido junto à entrada, e os valores de ida e volta para ambas as unidades aparecem na saída para que você possa procurar no seu código e escolher o certo. Sem registro, sem rastreamento publicitário, sem limite de requisições.
Por que usar este conversor de timestamp Unix
Segundos e milissegundos, detecção automática
Cole qualquer número e o conversor detecta a unidade pelo comprimento: 10 dígitos são segundos, 13 são milissegundos (Java / JavaScript Date.now()), 16 são microssegundos, 19 são nanossegundos. Você nunca vai precisar lembrar de dividir por 1000.
Saída com fuso horário
Cada resultado é exibido em UTC, no fuso horário local do seu navegador, em ISO 8601, em RFC 1123 e em forma relativa legível por humanos («há 3 horas»). Copie o que precisar para o seu relatório de bug, ticket do JIRA ou commit do git.
Funciona localmente, nada é enviado
Timestamps de logs podem ser sensíveis — delimitam ids de requisição, ids de usuário e janelas de incidentes. Toda a conversão acontece no seu navegador; nada é enviado a um servidor. Seguro para colar timestamps de produção.
Ida e volta pronta para qualquer stack
O mesmo valor é exibido como segundos Unix, milissegundos Unix, ISO 8601 e Excel/FILETIME/Ticks do .NET. Use direto em date +%s, iat de JWT, FROM_UNIXTIME do MySQL ou DateTimeOffset.FromUnixTimeSeconds do .NET.
Perguntas frequentes
Como converto um timestamp Unix para uma data?
Cole o timestamp no campo acima. O conversor detecta se são segundos ou milissegundos contando os dígitos (10 = segundos, 13 = milissegundos) e mostra o momento em UTC, no fuso horário local do seu navegador e em ISO 8601. Por exemplo, 1700000000 é 2023-11-14T22:13:20 UTC. Se preferir fazer isso via código: JavaScript new Date(1700000000 * 1000).toISOString(), Python datetime.utcfromtimestamp(1700000000), ou Linux date -u -d @1700000000.
Qual é a diferença entre segundos e milissegundos em um timestamp?
Ambos contam a partir do mesmo epoch (1970-01-01 00:00:00 UTC), mas em unidades diferentes. Segundos Unix — usados por date +%s do Linux, UNIX_TIMESTAMP() do MySQL, time.time() do Python (como inteiro), extract(epoch from now()) do PostgreSQL, iat/exp de JWT — têm hoje cerca de 10 dígitos (por exemplo, 1700000000). Milissegundos — usados por Date.now() do JavaScript, System.currentTimeMillis() do Java, Date do MongoDB — têm cerca de 13 dígitos (por exemplo, 1700000000000). O conversor detecta a unidade pelo número de dígitos, então você não precisa lembrar de multiplicar ou dividir por 1000.
Como obtenho o timestamp Unix atual?
Stacks diferentes o expõem de forma diferente. JavaScript: Math.floor(Date.now() / 1000) para segundos, Date.now() para milissegundos. Python: int(time.time()) ou time.time_ns() // 1_000_000_000. Bash / Linux: date +%s para segundos, date +%s%3N para milissegundos. Go: time.Now().Unix() ou .UnixMilli(). PHP: time(). MySQL: SELECT UNIX_TIMESTAMP(). PostgreSQL: SELECT EXTRACT(epoch FROM now())::bigint. A ferramenta acima também mostra o timestamp atual ao vivo, atualizando a cada segundo — copie com um clique.
O que é o problema do ano 2038 (Y2038)?
Um timestamp Unix com sinal de 32 bits pode armazenar valores de até 2.147.483.647 — o que corresponde a 2038-01-19 03:14:07 UTC. Um segundo depois ele estoura e volta a um número negativo, por volta de dezembro de 1901. O bug afeta código C legado que usa time_t como int32, além de firmware embarcado antigo, inodes ext3 e alguns protocolos (NTPv4 estoura em 2036). Sistemas modernos de 64 bits, o Number do JavaScript, o long do Java e os kernels Linux atuais usam timestamps de 64 bits, cujo estouro está a 292 bilhões de anos de distância. Se sua stack ainda usa horário de 32 bits, conserte antes de 2038.
Como converto milissegundos para segundos?
Divida por 1000 e (normalmente) descarte o resto. Em JavaScript: Math.floor(Date.now() / 1000). Em Python: int(time_ms / 1000) ou time_ms // 1000. Em SQL: timestamp_ms / 1000. No sentido contrário, multiplique por 1000: secondsTimestamp * 1000. Não perca precisão sem perceber — se você realmente precisa de precisão de subsegundo (eventos financeiros, traces distribuídos, spans do OpenTelemetry), mantenha a unidade original e converta apenas na camada de apresentação.
Qual formato o JavaScript usa?
Date.now() e (new Date()).getTime() do JavaScript retornam o horário Unix em milissegundos — um número de 13 dígitos, não segundos. O construtor Date e new Date(ms) também esperam milissegundos. É o erro mais comum ao consumir uma API JSON de um backend em Python ou Linux: se você passar um valor de 10 dígitos em segundos para new Date(), vai obter uma data de 1970. Sempre multiplique segundos por 1000 antes de passá-los para Date, ou use new Date(seconds * 1000).
Como converto ISO 8601 para um timestamp Unix?
Use a aba Data → timestamp acima e a ferramenta vai devolver tanto segundos quanto milissegundos, além de um eco em ISO 8601 para você confirmar a interpretação do fuso horário. Em código: JavaScript Math.floor(new Date('2026-06-15T12:00:00Z').getTime() / 1000); Python int(datetime.fromisoformat('2026-06-15T12:00:00+00:00').timestamp()); Bash date -d '2026-06-15T12:00:00Z' +%s. Sempre inclua um fuso horário na string ISO (Z ou ±HH:MM) — caso contrário, o parser recorre ao fuso horário local da máquina e você vai obter um número diferente em cada servidor.
Por que timestamps Unix costumam ser expressos em UTC?
Porque um timestamp Unix não tem fuso horário — é simplesmente uma contagem de segundos a partir de um único instante fixo em UTC. Dois servidores em Nova York e Tóquio que executam time.time() exatamente no mesmo instante produzem o mesmo número. O fuso horário de exibição é uma decisão de apresentação tomada depois. Armazenar timestamps em UTC (ou como inteiros Unix brutos) e convertê-los para o horário local apenas na camada de interface é o padrão comum; armazenar o horário local em um banco de dados é o que causa erros de horário de verão e linhas de horário duplicado na mudança de horário de outono.