Conversor de Timestamp Unix

Converta Timestamp Unix para data/hora legível ou vice-versa. Suporte a segundos e milissegundos. Exibe ISO 8601, UTC, data e hora local. Processamento 100% local no navegador.

Revisão técnica: Cesar Gargiulo (segurança da informação)
Valim, o mascote do ValorFinal, representando a categoria Tecnologia

Na detecção automática, a escala usada aparece no resultado: até 10 dígitos são segundos, 13 são milissegundos e 16 são microssegundos.

Tabela de timestamp Unix, de 1969 a 2286

Deslize a tabela para o lado: são 5 colunas.

Marcos do tempo Unix com o valor em segundos, em milissegundos, a data em UTC no formato ISO 8601 e o horário de Brasília, calculados pelo conversor desta página
MarcoSegundosMilissegundosUTC (ISO 8601)Horário de Brasília
Epoch, o instante zero001970-01-01T00:00:00.000Z31/12/1969 21:00:00
Um dia antes do Epoch (valor negativo)-86400-864000001969-12-31T00:00:00.000Z30/12/1969 21:00:00
Último valor de 9 dígitos9999999999999999990002001-09-09T01:46:39.000Z08/09/2001 22:46:39
Primeiro valor de 10 dígitos100000000010000000000002001-09-09T01:46:40.000Z08/09/2001 22:46:40
A sequência 1234567890123456789012345678900002009-02-13T23:31:30.000Z13/02/2009 21:31:30
1,7 bilhão de segundos170000000017000000000002023-11-14T22:13:20.000Z14/11/2023 19:13:20
Virada de 2026 em Brasília176723640017672364000002026-01-01T03:00:00.000Z01/01/2026 00:00:00
Virada de 2027 em Brasília179877240017987724000002027-01-01T03:00:00.000Z01/01/2027 00:00:00
2 bilhões de segundos200000000020000000000002033-05-18T03:33:20.000Z18/05/2033 00:33:20
Teto do inteiro de 32 bits com sinal (ano 2038)214748364721474836470002038-01-19T03:14:07.000Z19/01/2038 00:14:07
Teto do inteiro de 32 bits sem sinal429496729542949672950002106-02-07T06:28:15.000Z07/02/2106 03:28:15
Último valor de 10 dígitos999999999999999999990002286-11-20T17:46:39.000Z20/11/2286 14:46:39

Valores calculados pelo próprio conversor. O horário de Brasília vem da base de fusos da IANA (America/Sao_Paulo), que inclui o horário de verão da época: em 13/02/2009 ele estava em vigor, por isso a diferença para o UTC naquela linha é de 2 horas, e não de 3.

Em resumo

O timestamp Unix é a contagem de segundos desde 1º de janeiro de 1970, às 00:00:00 UTC. Hoje esse número tem 10 dígitos em segundos, 13 dígitos em milissegundos, que é a escala do Date.now() do JavaScript, e 16 em microssegundos. O conversor lê a escala pelo tamanho do número, diz na tela qual usou e devolve a data em ISO 8601, em UTC e no horário de Brasília. Desde o Decreto 9.772, de 25 de abril de 2019, que encerrou o horário de verão, Brasília fica em UTC-3 o ano todo.

Um número que aparece em log e em sistema antigo é 2.147.483.647, o maior valor de um inteiro de 32 bits com sinal. Ele corresponde a 19/01/2038 às 03:14:07 UTC, e sistemas que ainda guardam o tempo nesse formato voltam para 1901 no segundo seguinte. Aqui a conta usa o número de 64 bits do JavaScript e aceita datas do ano 1 ao ano 9999. Data que não existe, como 30 de fevereiro, é recusada em vez de virar 1º de março, e o que você digita não sai do navegador.

Outras ferramentas de dados e formatos

  • Formatador de JSONFormate, valide e minifique JSON sem que um número grande mude de valor nem uma chave repetida desapareça. O erro vem com a linha e a coluna. Tudo no seu navegador.
  • Conversor de dadosConverta CSV, JSON, YAML e XML sem perder dado: CPF com zero na frente e número grande continuam inteiros, e toda transformação é avisada. Tudo no seu navegador.
  • CSV para JSONCole o CSV e receba o JSON no navegador, com o delimitador reconhecido sozinho, com ou sem cabeçalho, prévia em tabela e download local. CPF com zero à frente e número grande continuam intactos.
  • Codificador Base64Codifique texto para Base64 ou decodifique Base64 para texto diretamente no navegador. Suporte completo a UTF-8, emojis e caracteres acentuados. Processamento 100% local.
  • Codificar e decodificar URLCodifique, decodifique e analise URLs completas no navegador. Separa protocolo, host, porta, caminho, query string e fragmento. Usa APIs nativas, processamento 100% local, sem fetch externo.
  • Conversor binário, decimal e hexadecimalConverta números entre decimal, binário, hexadecimal e octal instantaneamente. Informe o valor e a base de origem e veja todas as representações em paralelo. Processamento 100% local.

Todas as ferramentas, por tarefa, estão em ferramentas de tecnologia online.

Gostou? Mostre pra todo mundo

Gere um card bonito com a marca do ValorFinal para postar nos Stories ou mandar no WhatsApp. Nada que você digitou aparece no card.

Coloque no seu site

O Timestamp Unix é a quantidade de tempo decorrida desde 1º de janeiro de 1970 às 00:00:00 UTC. Esta página converte esse número em data legível e o contrário, detectando se ele está em segundos, milissegundos ou microssegundos, e dizendo na tela qual escala usou.

Como funciona a conversão de Timestamp Unix

Na ida, o número é multiplicado pelo fator da escala para virar milissegundos, que é a unidade interna do JavaScript, e daí sai a data em ISO 8601, em UTC e em horário de Brasília. A escala vem da ordem de grandeza: abaixo de 10 elevado a 11 é segundos, abaixo de 10 elevado a 14 é milissegundos, e acima disso é microssegundos.

Na volta, a data é lida por um formato estrito em vez do construtor Date, que é tolerante demais e transforma 30 de fevereiro em 1º de março sem avisar. O dia é conferido contra o número real de dias do mês, com a regra completa de ano bissexto, e a data sem fuso escrito é lida como UTC.

Datas antes de 1970 têm timestamp negativo e são convertidas normalmente. Para ler o valor em outra base, veja a calculadora binário, decimal e hexadecimal. Para conferir quando uma tarefa agendada vai rodar, use o interpretador de expressão cron.

Fórmula

milissegundos = timestamp x fator da escala (1000, 1 ou 0,001)

segundos = piso(milissegundos / 1000)

escala detectada: |t| < 10^11 segundos · < 10^14 milissegundos · senão microssegundos

Base: definição de Unix time do POSIX.1 (IEEE Std 1003.1), norma ISO 8601 para representação de data e hora, e a API Date do ECMAScript. Conversão determinística e local no navegador.

Timestamp Unix sempre tem 10 dígitos? Não, e o tamanho diz a escala

Dez dígitos é o tamanho do valor em segundos só a partir de setembro de 2001, e o mesmo instante ganha 3 dígitos a cada escala mais fina. As quatro contas abaixo saem do próprio conversor:

  1. O primeiro timestamp de 10 dígitos, 1.000.000.000, é 09/09/2001 às 01:46:40 UTC. Um segundo antes, 999.999.999 tinha 9 dígitos. O último de 10 dígitos, 9.999.999.999, só chega em 20/11/2286 às 17:46:39 UTC.
  2. O mesmo instante em milissegundos tem 13 dígitos. O Date.now() do JavaScript devolve milissegundos, e o date +%s do Linux devolve segundos. A data 2024-01-15T10:30:00Z vira 1705314600 no terminal e 1705314600000 no navegador.
  3. Ler o valor de 13 dígitos como segundos leva ao ano 56009. É por isso que o conversor recusa essa leitura e sugere trocar a escala, em vez de mostrar uma data no futuro distante.
  4. O corte entre segundos e milissegundos fica em 10 elevado a 11. Em segundos, esse valor só é alcançado no ano 5138; em milissegundos, ele é 03/03/1973 às 09:46:40 UTC. Um valor em milissegundos anterior a março de 1973 tem 11 dígitos ou menos e é lido como segundos. Nesse caso, fixe a escala à mão.

Limitações

  • Converte datas do ano 1 ao ano 9999. Fora disso a resposta é uma recusa explicando a escala provável, e não uma data improvável.
  • A detecção de escala é por ordem de grandeza, então um instante de 1970 gravado em milissegundos tem poucos dígitos e é lido como segundos. Nesse caso, fixe a escala à mão.
  • Não trata segundos bissextos: como todo Unix time, a conta assume dias de 86.400 segundos.
  • Data sem fuso escrito é lida como UTC. Se o seu dado nasceu em horário local, escreva o deslocamento (por exemplo, -03:00).
  • A linha de data local depende do fuso do seu sistema operacional. A linha de Brasília não depende, e é a que deve ser usada em comparação.

Coloque esta ferramenta no seu site, de graça

Tem site, blog ou loja virtual? Esta ferramenta tem uma versão para incorporar: você copia um código e cola no seu HTML. Sem cadastro, sem mensalidade e sem limite de acessos, e ela roda no navegador de quem visita o seu site.

timestamp Unix para sitever todas as ferramentas para site

Calculadoras relacionadas

Guias sobre este tema

ValorFinal VIP: Sem anúncios, até 500 cenários salvos e comparação de cenários lado a lado.

Conversão auditável, com o fator de conversão à vista

Atualizado em . Fontes: Unix time / ISO 8601 / MDN Web Docs.

Processamento local: esta ferramenta roda no seu navegador e nada é enviado a servidores automaticamente.

Como validamos

Referências técnicas

Links externos para o que foi consultado na construção desta página, com a natureza de cada fonte identificada. O conteúdo delas pode mudar sem aviso; em caso de divergência, vale sempre a fonte primária.

Incorpore esta calculadora no seu site (grátis)

Copie e cole o código no seu site. A calculadora se atualiza sozinha. O crédito ao ValorFinal vem junto do código e a gente agradece quem mantém, mas ele é opcional: pode remover sem perder o widget. O link sai com rel="nofollow", ou seja, não transfere autoridade de busca para a gente.

Perguntas frequentes

O que é um Timestamp Unix?

O Timestamp Unix, também chamado de Unix time, POSIX time ou Epoch time, é o número de segundos que se passaram desde 1º de janeiro de 1970, às 00:00:00 UTC. Esse instante é o Epoch, e o timestamp dele é 0. O número não carrega fuso horário: o mesmo valor vale no Brasil e no Japão, e cada sistema converte para a hora local só na hora de mostrar. Como é um inteiro só, dá para guardar, ordenar e subtrair datas sem ambiguidade, e por isso ele aparece em bancos de dados, logs, APIs e tokens JWT.

Qual é a diferença entre timestamp em segundos e em milissegundos?

A escala. Em segundos, que é o padrão Unix clássico, o valor atual tem 10 dígitos. Em milissegundos, a escala do Date.now() do JavaScript e de muitas APIs, o mesmo instante é 1.000 vezes maior e tem 13 dígitos. Os dois contam a partir de 1970, em UTC. A data 2024-01-15T10:30:00Z é 1705314600 em segundos e 1705314600000 em milissegundos. Trocar uma escala pela outra é o erro mais comum: os milissegundos lidos como segundos caem no ano 56009, e os segundos lidos como milissegundos caem em 20/01/1970.

O que é o Epoch ou Unix Epoch?

O Unix Epoch é o ponto de origem do Timestamp Unix: 1º de janeiro de 1970, às 00:00:00 UTC, cujo timestamp é 0. Datas anteriores têm valor negativo. O dia 1º de janeiro de 1969, por exemplo, é -31536000, porque 1969 teve 365 dias de 86.400 segundos. O POSIX fixa essa origem e manda contar todo dia com exatamente 86.400 segundos, sem os segundos bissextos. Esta ferramenta converte valores negativos normalmente, até o ano 1.

O que é ISO 8601?

ISO 8601 é a norma internacional da ISO para escrever data e hora. O formato completo é AAAA-MM-DDTHH:MM:SS.sssZ: o T separa a data da hora e o Z indica UTC, como em 2024-01-15T10:30:00Z. No lugar do Z pode vir o deslocamento do fuso, como -03:00 para Brasília, e então 2024-01-15T07:30:00-03:00 é o mesmo instante. Como a ordem vai do ano ao segundo, texto nesse formato ordena como data, e é por isso que ele é o mais usado entre sistemas. A linha ISO 8601 (UTC) do resultado sai sempre com o Z.

Meu resultado de data/hora local está diferente de UTC, por quê?

Porque são relógios diferentes. A linha Data/hora local usa o fuso configurado no sistema operacional de quem abre a página, e o UTC é a referência universal. No Brasil, 12:00 UTC aparece como 09:00 no horário de Brasília, que está em UTC-3 o ano todo desde que o Decreto 9.772, de 25 de abril de 2019, encerrou o horário de verão. Uma data antiga que caia num período de horário de verão mostra diferença de 2 horas, porque naquela época o relógio era adiantado. O Timestamp Unix em si não muda: ele é sempre contado em UTC.

Como converter data para timestamp no JavaScript?

Use new Date('2024-01-15T10:30:00Z').getTime() para ter o valor em milissegundos, ou Math.floor(new Date('2024-01-15T10:30:00Z').getTime() / 1000) para ter em segundos. O instante atual é Date.now(), em milissegundos. Prefira o formato ISO 8601 com o Z no fim, porque sem ele o JavaScript lê a data com hora como horário local. No terminal do Linux, date +%s mostra o timestamp atual em segundos, e date -u -d @1705314600 faz a conversão de volta para data.

Como a ferramenta descobre se o número está em segundos ou em milissegundos?

Pela ordem de grandeza, e o resultado mostra a escolha na linha Escala usada. Com até 10 dígitos o valor é lido como segundos, com 13 dígitos como milissegundos e com 16 dígitos como microssegundos, a escala de sistemas que registram eventos com precisão de milionésimo de segundo. Os cortes exatos ficam em 10 elevado a 11 e 10 elevado a 14. Você pode fixar a escala à mão em vez de usar a detecção. Se a escala escolhida destoar do tamanho do número, aparece um aviso dizendo o que a ferramenta calculou e o que o número provavelmente é.

Por que um timestamp de 13 dígitos marcado como segundos é recusado?

Porque o resultado não seria uma data, seria um número disfarçado de data. O valor 1705314600000, lido como segundos, cai no ano 56009. Mostrar isso como conversão bem-sucedida esconderia o erro de escala, que é o mais comum com timestamp. A ferramenta recusa e explica: o número tem 13 dígitos, o tamanho de um valor em milissegundos como o do Date.now(), e sugere trocar a escala ou usar a detecção automática. A faixa aceita vai do ano 1 ao ano 9999.

Datas que não existem, como 30 de fevereiro, são aceitas?

Não. O construtor Date do JavaScript aceita '2024-02-30' e devolve 1º de março, calado, porque ele acumula o dia que sobrou. Esta ferramenta valida o dia contra o número real de dias do mês, com a regra completa de ano bissexto (divisível por 4, exceto séculos não divisíveis por 400). Por isso 2024-02-29 é aceito, 2023-02-29 e 1900-02-29 são recusados, e 2000-02-29 é aceito. Hora acima de 23 e minuto acima de 59 também são recusados.

Se eu digitar uma data sem fuso, ela é lida como local ou como UTC?

Como UTC, e o resultado diz isso em texto. O JavaScript trata '2024-01-15' como UTC e '2024-01-15T10:30:00' como horário local, uma incoerência da própria linguagem que faz o mesmo texto virar timestamps diferentes conforme o fuso do computador. Aqui a regra é uma só: sem fuso escrito, a leitura é UTC. Para informar outro fuso, escreva o deslocamento na data, como 2024-01-15T07:30:00-03:00. O resultado mostra a data em UTC e também em horário de Brasília.

O que é o problema do ano 2038?

É o limite dos sistemas que guardam o Timestamp Unix num inteiro de 32 bits com sinal. O maior valor que cabe nesse formato é 2.147.483.647, que corresponde a 19/01/2038 às 03:14:07 UTC. Um segundo depois, o número dá a volta e vira -2.147.483.648, que é 13/12/1901 às 20:45:52 UTC. Sistemas atuais guardam o tempo em 64 bits e não têm esse problema, mas equipamentos antigos e formatos de arquivo com campo de 32 bits ainda existem. Esta ferramenta usa o número de 64 bits do JavaScript e converte datas depois de 2038 sem erro.

O que são as linhas Data UTC, Data/hora em Brasília e Data/hora local no resultado?

São o mesmo instante escrito em três relógios. Data UTC é o horário universal no formato em inglês usado em cabeçalhos HTTP, como Mon, 15 Jan 2024 10:30:00 GMT. Data/hora em Brasília sai da base de fusos America/Sao_Paulo e não depende do seu computador, por isso é a linha certa para comparar com outra pessoa. Data/hora local usa o fuso do sistema operacional de quem abriu a página: num computador configurado para Lisboa, ela mostra a hora de Lisboa. As linhas Dia (local) e Hora (local) repetem essa data local em duas partes.