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
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.
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.
Como usar esta ferramenta
- Cole um timestamp Unix ou aperte “Usar a hora atual”. O campo de data é preenchido na hora.
- Deixe a unidade em Auto, ou escolha segundos, milissegundos, microssegundos ou nanossegundos.
- 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.
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.
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.