Como converter um timestamp Unix
Introduza um valor epoch numérico ou uma data ISO completa com fuso. Use unidade explícita quando conhecida. O modo automático decide pela magnitude e mostra a interpretação detetada.
- Escolha Automático, Segundos, Milissegundos ou ISO; ISO exige hora completa e Z ou offset numérico.
- Introduza o número sem separadores nem sufixos. Segundos decimais são aceites.
- Compare ISO UTC, hora local, segundos e milissegundos.
- Confirme o fuso do navegador e a unidade detetada antes de usar o resultado.
Exemplos e comportamento esperado
| Entrada | Saída | Observações |
|---|---|---|
0 segundos |
1970-01-01T00:00:00.000Z |
O epoch Unix começa em 1.º de janeiro de 1970 à meia-noite UTC. |
1704067200 segundos |
2024-01-01T00:00:00.000Z |
Dez dígitos modernos normalmente são segundos. |
1704067200000 milissegundos |
2024-01-01T00:00:00.000Z |
Treze dígitos modernos normalmente são milissegundos. |
2024-01-01T08:00:00+08:00 |
2024-01-01T00:00:00.000Z |
O offset é aplicado antes de mostrar UTC. |
-1 segundo |
1969-12-31T23:59:59.000Z |
Valores negativos representam instantes antes do epoch. |
2024-02-30T00:00:00Z |
Data ISO inválida |
A validação estrita rejeita datas impossíveis. |
Segundos, milissegundos e deteção
Um timestamp Unix conta tempo desde 1970-01-01T00:00:00Z. Muitos sistemas armazenam segundos, enquanto Date do JavaScript usa milissegundos. Confundi-los altera o resultado por mil; modo explícito é o mais seguro.
Automático trata valores absolutos de 100.000.000.000 ou mais como milissegundos e menores como segundos. Funciona para datas modernas comuns, mas não conhece a intenção em datas extremas. Verifique o modo detetado.
- Dez dígitos modernos costumam ser segundos.
- Treze dígitos costumam ser milissegundos.
- Valores negativos são aceites dentro do intervalo Date.
ISO e validação de calendário
O modo ISO exige data, hora, segundos e Z ou offset +HH:MM/-HH:MM. O fuso obrigatório evita que dispositivos interpretem uma data local sem fuso como instantes diferentes. Uma a três casas de milissegundos são aceites.
Campos do calendário são verificados além de Date.parse. Datas como 2024-02-30, hora 25 ou offset inválido são rejeitadas em vez de normalizadas silenciosamente.
- Z significa UTC.
- Use offset numérico para um deslocamento conhecido.
- Abreviações como CST são ambíguas e não aceites.
UTC, hora local e fuso
O resultado ISO é sempre UTC. A hora local usa idioma e fuso IANA do navegador, incluindo regras de hora de verão. Dois utilizadores podem ver horas locais diferentes para o mesmo instante.
Um offset descreve um instante; um fuso IANA contém regras históricas e futuras. Para agendamento regional, armazene UTC e também o fuso IANA quando a hora local futura importar.
- Compare logs e APIs em UTC.
- Hora local é apresentação, não armazenamento portátil.
- Verifique o fuso em acesso remoto ou viagem.
Intervalo, precisão e segundos intercalares
Date aceita aproximadamente ±8,64×10^15 milissegundos. Fora desse intervalo, rejeita o valor. Os números usam a precisão do JavaScript, pelo que valores enormes ou frações podem perder exatidão.
Unix e Date não representam 23:59:60. A ferramenta não se destina a escalas astronómicas nem a relógios monotónicos. Para APIs e registos, ISO UTC, segundos e milissegundos são as formas interoperáveis.
- Não use vírgulas nem sufixos como ms.
- NaN e Infinity são inválidos.
- Segundos intercalares não são representados.
Usos e diagnóstico
É útil em bases de dados, logs, claims JWT, analytics, webhooks e agendadores. Ajuda a detetar unidade, fuso e eventos futuros ou expirados.
Primeiro identifique a unidade documentada e use modo explícito. Diferença de horas sugere fuso; décadas ou milênios sugerem segundos versus milissegundos. Guarde o valor bruto em incidentes.
- Ler iat, exp e nbf.
- Montar linha do tempo de logs.
- Verificar migrações entre colunas de segundos e milissegundos.
- Preservar texto assinado de cabeçalhos temporais.
Erros e limites
Entrada vazia, número malformado, ISO inválido, data impossível e intervalo excedido são separados. Separadores, sufixos, datas sem hora e ISO sem fuso não são aceites.
Não interpreta durações, cron, frases relativas, datas seriais do Excel ou GPS. Para recorrência e hora de verão, use biblioteca de agendamento com fuso.
- Timestamp válido não prova evento fiável.
- Deteção automática não substitui esquema.
- Documente a unidade nos nomes dos campos.
Diferenças para UUID e hash
Timestamp representa tempo e é previsível; não é identificador secreto. UUID v4 oferece aleatoriedade e hash resume conteúdo. HMAC autentica timestamp junto com mensagem.
Converta uma cópia para leitura humana, mas preserve o texto exato na verificação de assinatura, pois formato e unidade alteram os bytes autenticados.