S
SoSimple.tools
Ferramentas para devs e design

Conversor de timestamp Unix: epoch para data legível e vice-versa

Cole um timestamp para lê-lo como data, ou escolha uma data para obter o timestamp. A ferramenta detecta segundos, milissegundos, microssegundos e nanossegundos e mostra o UTC e o fuso horário que você escolher

Funciona no seu navegador: o que você informa fica no seu aparelho

Timestamp e data

Apenas dígitos; use um sinal de menos para datas anteriores a 1970. Editar um campo atualiza o outro. Intervalo válido: cerca de ±8,64 × 10¹⁵ milissegundos em torno de 1970.

Resultado da conversão
UTC (ISO 8601)
2023-11-14T22:13:20Z
Detectado como segundos (quantidade de dígitos: 10)
Segundos
1700000000
Milissegundos
1700000000000
Microssegundos
1700000000000000
Nanossegundos
1700000000000000000
No fuso horário escolhido
terça-feira, 14 de novembro de 2023 às 22:13:20 UTC
2023-11-14T22:13:20Z (UTC)
Formato RFC 2822 (UTC)
Tue, 14 Nov 2023 22:13:20 +0000
Dia da semana e dia do ano (UTC)
terça-feira, 318º dia do ano

O tempo Unix conta segundos desde 1970-01-01 00:00:00 UTC e ignora os segundos intercalares. O fuso horário só muda como o instante é exibido.

Compartilhar esta ferramenta

Como usar esta ferramenta

  1. Cole um timestamp Unix ou aperte “Usar a hora atual”. O campo de data é preenchido na hora.
  2. Deixe a unidade em Auto, ou escolha segundos, milissegundos, microssegundos ou nanossegundos.
  3. Escolha um fuso horário e veja o resultado em UTC e nesse fuso. Para o caminho inverso, edite a data e a hora e veja o timestamp nas quatro unidades. Use “Copiar resultado” para guardar.

Exemplo prático

O timestamp 1700000000 tem 10 dígitos, então é lido como segundos: 2023-11-14T22:13:20Z em UTC. Em America/Sao_Paulo (UTC−03:00 naquele dia) o relógio marca 19:13:20 naquela mesma terça-feira, o 318º dia de 2023. Acrescente três zeros, 1700000000000, e a ferramenta detecta milissegundos e mostra o mesmo instante. No sentido inverso, 2024-01-01 00:00:00 em UTC são 1704067200 segundos.

Metodologia

O manual do Linux define o tempo Unix como o número de segundos desde a Epoch, 1970-01-01 00:00:00 UTC, e diz que os sistemas Linux normalmente seguem a exigência do POSIX de que esse valor ignore os segundos intercalares (página de manual time(2)). O POSIX dá a aritmética: cada dia conta exatamente 86400 segundos, então um timestamp é o número de dias desde a Epoch vezes 86400 mais os segundos decorridos no dia. O JavaScript, que executa esta ferramenta, guarda o mesmo instante como milissegundos desde a Epoch e aceita valores de até ±8,64 × 10¹⁵ ms, de 20 de abril de 271821 a.C. a 13 de setembro de 275760 d.C. (MDN). As datas são escritas no formato ISO 8601, no perfil definido pela RFC 3339, com “Z” para UTC ou um deslocamento como −03:00. Tudo roda no seu navegador, e as regras de fuso horário vêm dos dados do próprio navegador, não deste site.

Fórmulas usadas: A detecção da unidade conta os dígitos antes da vírgula decimal: até 11 são segundos, de 12 a 14 milissegundos, de 15 a 17 microssegundos e 18 ou mais nanossegundos. O valor é guardado exatamente como um número inteiro de nanossegundos, então valores de 19 dígitos mantêm todos os dígitos. Milissegundos = nanossegundos ÷ 1.000.000, arredondado para baixo. O deslocamento do fuso é a diferença entre a hora que o navegador informa para aquele instante no fuso escolhido e o UTC. Com uma data, a ferramenta parte da hora como se fosse UTC, subtrai o deslocamento do fuso em torno daquele dia e confere o resultado; se uma mudança de horário o tornar ambíguo ou impossível, a ferramenta avisa.
Limites do método: Valores pequenos são ambíguos: 1000 pode ser 1000 segundos ou 1000 ms; o Auto o lê como segundos e você pode escolher Milissegundos para forçar. As visões por fuso cobrem os anos 1 a 9999, e datas anteriores a 1970 dependem dos dados históricos de fusos do navegador, que podem variar entre navegadores e versões. Uma hora que ocorre duas vezes (os relógios são atrasados) resolve para o instante anterior, e uma que não existe (os relógios são adiantados) para o instante depois do salto. Os segundos intercalares não são modelados, então não dá para digitar 23:59:60. Depois de 2038-01-19 03:14:07 UTC os valores deixam de caber em um contador de segundos de 32 bits com sinal; a ferramenta avisa, mas converte mesmo assim.

Quatro erros com timestamps e como identificá-los

A maioria das datas erradas vem de poucas causas que se repetem. Confira estas antes de depurar qualquer outra coisa.

  • Segundos lidos como milissegundos, ou o contrário. 1700000000 tomado como milissegundos é 1970-01-20, apenas 19 dias depois da Epoch, e 1700000000000 tomado como segundos cai no ano 55840. Uma data perto de 1970 ou num futuro distante costuma indicar a unidade errada.
  • Confundir hora local e UTC. Um timestamp é um instante; a hora do relógio vem do fuso. 1700000000 são 22:13:20 em UTC e 19:13:20 em São Paulo, e as duas estão corretas.
  • Guardar segundos em um inteiro de 32 bits com sinal. O maior valor, 2147483647, é 2038-01-19 03:14:07 UTC, e o menor, −2147483648, é 1901-12-13 20:45:52 UTC. A página de manual time(2) aconselha um time_t mais largo para software que precise funcionar depois de 2038.
  • Esperar segundos intercalares. O tempo Unix conta cada dia como 86400 segundos, então somar 86400 a um timestamp sempre dá a mesma hora UTC um dia depois.

Ferramentas relacionadas

Perguntas frequentes

O que é um timestamp Unix? ▼

É o número de segundos desde 1970-01-01 00:00:00 UTC, a Epoch do Unix, sem contar os segundos intercalares. Por exemplo, 1700000000 é 2023-11-14T22:13:20Z. Sendo um único número para um único instante, é fácil de guardar, ordenar e comparar, e não depende de fuso horário nem de formato de data.

Como saber se um timestamp está em segundos ou em milissegundos? ▼

Conte os dígitos. Timestamps de datas próximas de hoje têm 10 dígitos em segundos, 13 em milissegundos, 16 em microssegundos e 19 em nanossegundos. O modo Auto aplica essa regra e mostra o que detectou. Números muito pequenos, como 1000, são ambíguos; escolha você mesmo a unidade se a conhecer.

O que acontece em 2038? ▼

2147483647 segundos, 2038-01-19 03:14:07 UTC, é o maior valor de um inteiro de 32 bits com sinal. Software que guarda segundos em 32 bits não comporta o segundo seguinte e pode voltar para uma data de 1901. O manual do Linux aconselha um time_t mais largo para software feito para funcionar depois de 2038. Esta ferramenta usa números maiores, então apenas avisa.

Um timestamp Unix tem fuso horário? ▼

Não. Ele identifica um único instante para todos na Terra. O fuso só decide qual hora do relógio você mostra para esse instante: 1700000000 são 22:13:20 UTC e 19:13:20 em America/Sao_Paulo. Quando você edita o campo de data, a ferramenta o lê no fuso escolhido.

O tempo Unix inclui segundos intercalares? ▼

Não. O POSIX conta cada dia como exatamente 86400 segundos e o Linux segue essa regra, então a contagem não se move por um segundo intercalar. Somar 86400 a um timestamp dá, por isso, sempre a mesma hora UTC um dia depois, e esta ferramenta não consegue mostrar 23:59:60.