Timestamp Unix: confira a unidade antes de confiar na data

Um número de log ou API pode virar uma data sem sentido. Muitas vezes não é fuso misterioso: segundos foram lidos como milissegundos, ou o contrário.

O número precisa de uma unidade explícita

O timestamp conta desde 1970-01-01T00:00:00Z. Alguns sistemas usam segundos; Date em JavaScript usa milissegundos e ignora segundos intercalares.

Multiplique segundos por 1000 para obter milissegundos. Quantidade de dígitos não é contrato confiável, sobretudo perto da época ou com negativos; confira a especificação da origem.

Referências: MDN — Date timestamps, UTC and milliseconds

O fuso muda a exibição, não o instante

O mesmo instante pode aparecer em relógios locais diferentes sem mudar o timestamp. Somar um deslocamento manualmente e depois exibir naquele fuso pode aplicá-lo duas vezes.

Este conversor usa UTC e exige Z na data informada. Não deduz fuso por idioma ou país; use conversão de fuso para a exibição local.

Precisão e intervalo fazem parte do significado

Uma fração em segundos pode representar milissegundos: 1.25 segundos não são 1250 segundos. Preserve a fração para ordenar registros com precisão melhor que um segundo.

A ferramenta aceita segundos com até 3 casas decimais ou milissegundos inteiros. Valida datas em vez de corrigir dias inexistentes silenciosamente. Não mede intervalos com segundos intercalares nem substitui um contrato temporal especializado.

Exemplo: dois números para o mesmo instante

86400 segundos e 86400000 milissegundos representam 1970-01-02T00:00:00.000Z. Ler 86400 como milissegundos dá 1970-01-01T00:01:26.400Z, diferença que não vem do idioma ou calendário.

−0.25 segundos equivale a 1969-12-31T23:59:59.750Z. O sinal indica antes da época e a fração é mantida; valor negativo não é automaticamente data inválida.

Referências