CodeKitHub
Português
Ferramentas de tempo

Conversor de data e hora do Unix

Converta um timestamp Unix numa data legível ou selecione uma data e obtenha o respetivo timestamp. A ferramenta deteta automaticamente se se trata de segundos ou milissegundos, apresenta a hora local, a UTC e o formato ISO 8601, e exibe na parte superior um relógio da época em tempo real.

Data e hora atuais (segundos)
Data e hora atuais (milissegundos)

Carimbo temporal → Data

Data → Carimbo temporal

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

  1. Para descodificar: cole um carimbo temporal (como 1720500000) na caixa da esquerda e clique em «Converter».
  2. Leia o resultado no seu fuso horário local, em UTC, em ISO 8601 e como hora relativa.
  3. 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.
  4. Utilize o relógio em tempo real na parte superior quando precisar apenas da data e hora atuais.

Exemplo

Entrada

1720500000

Resultado

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.000Z

Um 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.

Codificador/Decodificador Base64 · Calculadora de Idade

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.

Ferramentas relacionadas