Como usar Unix timestamp
O Unix timestamp começa em 1 de janeiro de 1970 às 00:00:00 UTC — uma data escolhida arbitrariamente por Ken Thompson e Dennis Ritchie na Bell Labs quando estavam desenvolvendo o Unix no final da década de 1960. Quando você escreve `time()` em PHP, `Date.now()` em JavaScript ou `datetime.now().timestamp()` em Python, o número que você recebe é a quantidade de segundos ou milissegundos desde esse momento. Por décadas, esse contador foi armazenado como um inteiro de 32 bits com sinal, o que significa que ele vai transbordar em 19 de janeiro de 2038 às 03:14:07 UTC — o Y2K38, o Problema do Ano 2038. Sistemas de 64 bits resolvem isso: um inteiro de 64 bits aguenta aproximadamente 292 bilhões de anos, bem além do prazo de suporte de qualquer software em produção.
O grande trunfo do timestamp Unix é que ele é não-ambíguo por definição. Uma data como `01/02/2025` pode ser 1 de fevereiro ou 2 de janeiro dependendo do locale do sistema. Um timestamp como `1748180200` é um único ponto no tempo, o mesmo em Tóquio, Nova York ou São Paulo. Além disso, timestamps são trivialmente ordenáveis — comparar dois inteiros é mais rápido e simples do que parsear e comparar strings de data. Um detalhe que causa bugs com frequência: `10 dígitos = segundos`, `13 dígitos = milissegundos`. Confundir os dois é um clássico: passar milissegundos onde o código espera segundos resulta numa data equivalente ao ano 57.000, enquanto passar segundos onde se espera milissegundos produz datas em 1970.
A regra de ouro ao trabalhar com timestamps é: armazene sempre em UTC, converta apenas na hora de exibir. Isso evita uma categoria inteira de bugs relacionados ao horário de verão, mudanças de fuso e diferenças de configuração entre servidores. Em JavaScript, `new Date(timestamp * 1000)` cria um objeto `Date` a partir de um timestamp em segundos — o `* 1000` converte para milissegundos, que é o que o construtor espera. Para exibir datas de forma localizada e acessível, o moderno `Intl.DateTimeFormat` é superior ao antigo `toLocaleDateString()`: ele aceita locale explícito, opções de formatação detalhadas e funciona consistentemente em todos os browsers modernos.
Dica
Se o valor parecer grande demais, pode estar em milissegundos (divida por 1000).
Perguntas frequentes
Para que serve esta ferramenta?
Ela roda 100% no seu navegador: útil para validar, formatar ou converter dados no dia a dia de desenvolvimento.
Meus dados são enviados a algum servidor?
O processamento é feito localmente via JavaScript. Não armazenamos o conteúdo que você cola nas caixas de texto.
Posso usar em produção ou para dados reais?
Use por sua conta e risco. Para segredos (senhas, tokens), prefira ambientes controlados e políticas da sua empresa. E lembre sempre de revisar os conteúdos gerados. Nunca confie cegamente nas coisas que vê na internet.