O que é esta ferramenta?
Um timestamp Unix (também denominado «tempo de época») é o número de segundos decorridos desde 1 de janeiro de 1970, às 00:00:00 UTC. É a forma padrão como os computadores armazenam momentos no tempo: bases de dados, arquivos de registo, APIs e linguagens de programação utilizam-no, uma vez que se trata de um número único e inequívoco, sem confusão de fusos horários.
Existem dois formatos: segundos (atualmente com 10 dígitos, por exemplo, 1720500000) e milissegundos (13 dígitos, utilizados pelo JavaScript e pelo Java). Esta ferramenta deteta automaticamente qual deles colou.
Por que usar?
- Leia instantaneamente os carimbos de data e hora dos registos, das linhas da base de dados e das respostas da API.
- Deteta automaticamente se se trata de segundos ou milissegundos — sem ter de adivinhar.
- Mostra a hora local, a UTC, a ISO 8601 e a hora relativa («há 3 horas») em simultâneo.
- Converter nos dois sentidos: carimbo de data/hora → data e data → carimbo de data/hora.
- Relógio em tempo real com a época atual, para consulta rápida.
Como usar
- Para descodificar: cole um carimbo temporal (como 1720500000) na caixa da esquerda e clique em «Converter».
- Leia o resultado no seu fuso horário local, em UTC, em ISO 8601 e como hora relativa.
- Para codificar: selecione uma data e uma hora na caixa à direita e clique em «Converter» para obter o seu carimbo temporal em segundos e milésimos de segundo.
- Utilize o relógio em tempo real na parte superior quando precisar apenas da data e hora atuais.
Exemplo
Entrada
1720500000Resultado
Local time: 7/9/2024, 1:20:00 PM
UTC time: Tue, 09 Jul 2024 05:20:00 GMT
ISO 8601: 2024-07-09T05:20:00.000ZUm valor de 10 dígitos é interpretado como segundos; um valor de 13 dígitos, como milissegundos.
Dicas práticas
- Resolução de erros relacionados com «hora errada»: 90% são problemas de exibição do fuso horário, e não carimbos de data/hora incorretos. Compare a linha UTC com os registos do seu servidor (os servidores costumam registar em UTC) antes de alterar qualquer código.
- Uma data que corresponde exatamente a 1970-01-01 significa que o carimbo de data/hora era 0 ou estava em falta — um sintoma clássico de valor nulo, não uma data real.
- Uma data por volta de 1970 + alguns dias significa, normalmente, que os segundos foram interpretados como milésimos de segundo algures; uma data no ano 56 000+ significa o contrário.
- Nas folhas de cálculo: o Excel conta os dias desde 1900, e não os segundos desde 1970. Para converter para um carimbo de data/hora em segundos, utilize a fórmula =(A1/86400)+DATE(1970,1,1).
Cenários de utilização reais
Situações em que os carimbos de data/hora se revelam importantes na prática: ler os campos de validade em JWTs e tokens de API (exp/iat são segundos Unix), correlacionar a hora do relatório de erro de um utilizador com as linhas do registo do servidor, definir os TTLs do cache e as janelas do cron, e verificar se um certificado ou token expirou efetivamente. A linha de tempo relativa («há 3 horas») é a verificação mais rápida para todos estes casos.
A depuração de JWT é suficientemente comum para que valha a pena explicar: descodifique a carga útil do token com a ferramenta Base64 e, em seguida, cole o valor «exp» aqui — resposta imediata à pergunta «este token está expirado e há quanto tempo?».
Por que é que o tempo Unix foi concebido desta forma
Armazenar um único número incremental a partir de uma época fixa (em vez de uma estrutura de ano/mês/dia/hora) foi uma escolha deliberada em prol da simplicidade: dois carimbos de data e hora podem ser comparados ou subtraídos com aritmética simples, sem necessidade de lógica de calendário, razão pela qual as bases de dados, os formatos de registo e praticamente toda a representação interna de datas em todas as linguagens de programação se baseiam nisso. O custo dessa simplicidade é exatamente aquilo que esta ferramenta se destina a resolver — os seres humanos não pensam em «segundos desde 1970», por isso, cada carimbo temporal precisa de ser convertido de volta para uma data do calendário antes de fazer sentido para quem o lê, e essa conversão tem de ter em conta o fuso horário, a precisão (segundos vs. milissegundos) e o formato de exibição, tudo ao mesmo tempo.
Perguntas frequentes
Como é que a ferramenta sabe se o meu carimbo de data/hora está em segundos ou milissegundos?
Por ordem de grandeza. Os valores iguais ou superiores a 1 000 000 000 000 (1e12) são tratados como milissegundos; os valores inferiores, como segundos. As datas atuais correspondem a cerca de 1,7 mil milhões de segundos e cerca de 1 700 mil milhões de milissegundos, pelo que os dois intervalos não se sobrepõem no caso de datas realistas.
Por que é que o meu registo temporal indica uma hora diferente daquela que eu esperava?
Fusos horários. Um registo de data e hora baseia-se sempre no UTC; a linha «hora local» converte-o para o fuso horário do seu dispositivo. Compare a linha UTC com o que o seu sistema de origem regista — muitos servidores registam em UTC.
O que é o problema do ano 2038?
Os sistemas que armazenam carimbos de data/hora como inteiros de 32 bits com sinal sofrem um estouro de memória a 19 de janeiro de 2038. Os sistemas modernos utilizam inteiros de 64 bits e não são afetados. Esta ferramenta utiliza números em JavaScript, que suportam datas muito além de 2038.
Posso converter carimbos de data/hora negativos?
Sim. Os carimbos de data e hora negativos correspondem a datas anteriores a 1 de janeiro de 1970 — por exemplo, -86400 corresponde a 31 de dezembro de 1969.
A época inclui segundos intercalares?
Não. O tempo Unix parte do princípio de que cada dia tem exatamente 86 400 segundos e ignora os segundos intercalares — uma simplificação deliberada que facilita os cálculos.