Conversor de timestamp Unix

Converta entre timestamps Unix e datas.

Sobre esta ferramenta

Converta timestamps Unix em segundos, milissegundos ou microssegundos para ISO 8601, horário local e tempo relativo, ou transforme qualquer data de volta em timestamp.

Como usar

  1. Cole um timestamp Unix em segundos, milissegundos ou microssegundos, ou qualquer data em texto.
  2. A unidade é detectada pela quantidade de dígitos.
  3. Veja a data em ISO 8601, no seu horário local, em RFC 2822 e em forma relativa, e copie o que precisar.

Perguntas

O que é um timestamp Unix?
O número de segundos desde 1º de janeiro de 1970, 00:00:00 UTC, conhecido como Unix epoch. É o mesmo em todo o mundo, o que o torna ideal para armazenar momentos no tempo.
Segundos ou milissegundos?
Um timestamp atual em segundos tem 10 dígitos; em milissegundos, 13. Ferramentas Unix e a maioria das APIs usam segundos; o Date.now() do JavaScript retorna milissegundos.
O que é o problema do ano 2038?
Sistemas que armazenam timestamps como inteiros de 32 bits com sinal estouram em 19 de janeiro de 2038. Sistemas modernos usam valores de 64 bits e não são afetados.
Como datas anteriores a 1970 são escritas como timestamps Unix?
Como números negativos. -86400 é 31 de dezembro de 1969 às 00:00 UTC, um dia antes do epoch, e este conversor aceita o sinal de menos. Alguns sistemas e bibliotecas mais antigos rejeitam timestamps negativos, então confira antes de armazenar datas históricas, como datas de nascimento, desse jeito.
Os timestamps Unix incluem segundos bissextos?
Não. O Unix time trata todo dia como tendo exatamente 86.400 segundos e ignora os segundos bissextos. Quando um acontece, o relógio do sistema repete um segundo ou, no Google e na AWS, o distribui ao longo de várias horas, o que se chama smearing. Para quase todas as aplicações, dá para ignorar isso com segurança.
Como converter um timestamp Unix no Excel ou no Google Sheets?
Use =A1/86400 + DATE(1970,1,1) e formate a célula como data e hora. O resultado fica em UTC, então some o seu offset dividido por 24 para ter o horário local. Para um timestamp em milissegundos, divida por 86400000 em vez de 86400.

Como obter o timestamp Unix atual em qualquer linguagem

A maioria das linguagens retorna o epoch time atual em uma chamada. Em JavaScript, Date.now() retorna milissegundos, então use Math.floor(Date.now() / 1000) para segundos. O time.time() do Python retorna segundos como float, e em um shell date +%s imprime segundos. Go tem time.Now().Unix(), Java tem Instant.now().getEpochSecond() e PostgreSQL tem extract(epoch from now()). O topo desta página mostra o valor atual ao vivo em segundos e milissegundos.

O caminho inverso é igualmente curto: new Date(ts * 1000).toISOString() em JavaScript, datetime.fromtimestamp(ts, tz=timezone.utc) em Python, date -d @1762540800 no Linux ou date -r 1762540800 no macOS. O bug mais frequente é misturar as unidades. Passe segundos para uma função que espera milissegundos e você cai em janeiro de 1970; passe milissegundos onde se esperam segundos e você obtém uma data dezenas de milhares de anos no futuro.

ISO 8601 ou Unix time: qual formato armazenar

O Unix time é um único número: fácil de comparar, ordenar e usar em cálculos, e livre de confusão com fusos horários. Strings ISO 8601 como 2026-11-07T20:00:00Z são legíveis para pessoas e podem levar um offset quando necessário, como em 2026-11-07T21:00:00+01:00. Os dois descrevem um instante exato. A RFC 3339 é o perfil mais rígido do ISO 8601 para a internet, que a maioria das APIs realmente segue.

Uma boa regra é armazenar instantes em um tipo timestamp nativo ou como Unix time, e enviar ISO 8601 com Z ou com offset em APIs e logs. Evite strings sem nenhum fuso, como 2026-11-07 20:00, porque cada leitor pode presumir um diferente. Este conversor de epoch lê essas strings como UTC e avisa isso em uma nota. Ele também entende formatos de log como 06/Nov/2026:09:15:02 +0000.

Por que meu timestamp convertido está algumas horas errado?

Um timestamp Unix não tem fuso horário; ele conta os segundos desde o epoch em UTC. Se uma data convertida parece algumas horas errada, o timestamp geralmente está certo e o problema é a exibição. Compare aqui a linha ISO 8601 (UTC) com a linha Local: elas mostram o mesmo instante, uma vez em UTC e outra no fuso horário do seu navegador. Um código que formata datas sem fuso usa o fuso local da máquina.

A outra causa comum é um timestamp criado a partir do horário local de relógio. No Python, datetime.utcnow().timestamp() é o exemplo clássico: o valor UTC ingênuo é tratado como horário local, então o resultado fica errado pelo seu offset em relação ao UTC. Use datetime.now(timezone.utc). Uma diferença de exatamente 3600 ou 7200 segundos aponta para esse tipo de bug. O Conversor de fusos horários mostra o que o relógio marcava em cada fuso.

Timestamps Unix notáveis

Marcos do tempo Unix, em segundos desde 1º de janeiro de 1970 UTC.

TimestampData (UTC)Por que importa
01970-01-01T00:00:00ZO epoch Unix: onde a contagem começa
10000000002001-09-09T01:46:40ZUm bilhão de segundos
12345678902009-02-13T23:31:30ZOs dígitos de 1 a 0 em ordem, celebrados por programadores
20000000002033-05-18T03:33:20ZDois bilhões de segundos
21474836472038-01-19T03:14:07ZMaior valor de 32 bits com sinal: o problema do ano 2038
42949672952106-02-07T06:28:15ZMaior valor de 32 bits sem sinal

Algo não está funcionando ou um resultado parece errado? Relatar um problema com esta ferramenta