Converta um timestamp Unix em data, e ao contrário

Última revisão do conteúdo:

Um número de dez algarismos num registo ou num JWT e ninguém sabe a que momento corresponde? Cole-o aqui: a data legível aparece de imediato, em UTC, sem instalar nada e sem registo.

s
para

O que é um timestamp Unix?

O timestamp Unix, também chamado tempo epoch, conta os segundos decorridos desde 1 de janeiro de 1970 às 00:00:00 UTC. É assim que as máquinas guardam uma data sob a forma de um único número inteiro.

O valor 1 700 000 000 corresponde a 14 de novembro de 2023 às 22:13:20 UTC. O timestamp de hoje anda pelos 1790 milhões e cresce uma unidade por segundo.

Encontra-se em bases de dados, APIs, registos de servidor e tokens JWT. Não depende de nenhum fuso horário: o mesmo número indica o mesmo instante em todo o mundo.

É daí que vem o problema do ano 2038: um timestamp guardado em 32 bits com sinal atinge o valor máximo a 19 de janeiro de 2038. Os sistemas atuais guardam-no em 64 bits.

Como funciona a conversão?

Converter é contar quantos dias, horas, minutos e segundos cabem no número de segundos passados desde a época. O resultado é dado em UTC, a mesma base do próprio timestamp.

Para a hora de Portugal continental, some zero horas no inverno e uma no verão, já que o país está em UTC+0 e UTC+1. No Brasil, que deixou de mudar a hora em 2019, Brasília está fixa em UTC-3, pelo que se subtraem três horas. Em JavaScript, Intl.DateTimeFormat com timeZone: "Europe/Lisbon" ou "America/Sao_Paulo" trata disso.

Atenção à unidade: o JavaScript conta milissegundos, não segundos. O Date.now() devolve por isso um número mil vezes maior do que um timestamp Unix e tem de ser dividido por 1000.

Timestamp Unix e data legível: o que os separa

Timestamp UnixData e hora
FormatoNúmero inteiroAAAA-MM-DD HH:MM:SS
Fuso horárioSempre UTCDepende do lugar
Intervalo em 32 bits0 – 2 147 483 6471970–2038
Intervalo em 64 bitsPraticamente ilimitadoMilhares de milhões de anos
OrdenaçãoNatural, são númerosExige analisar o texto

Como usar o conversor?

  1. 1. Insira um valor

    Escreva um timestamp em segundos. O conversor descarta a parte decimal, por isso divida primeiro os milissegundos por 1000.
  2. 2. Leia o resultado

    A data surge de imediato no campo ao lado, em UTC e no formato 2023-11-14 22:13:20, sem carregar em nenhum botão.
  3. 3. Copie ou troque o sentido

    Carregue em Copiar resultado ou no botão Trocar ordem para escrever uma data e obter o respetivo timestamp.

Quando serve este conversor?

  1. Bases de dados e colunas de data

    As colunas created_at, updated_at e deleted_at guardam muitas vezes um timestamp em vez de uma data legível, seja em PostgreSQL, MySQL ou SQLite. Ao depurar uma migração em Symfony ou Laravel, o conversor devolve sentido à linha sem lançar qualquer consulta.
  2. APIs e tokens JWT

    Um token JWT traz os campos exp e iat, a validade e o momento de emissão, ambos como timestamp Unix. O conversor diz num segundo se o token ainda é válido e quando foi emitido.
  3. Registos de servidor e tarefas cron

    O Apache, o Nginx e o syslog datam cada linha. Uma tarefa cron num servidor corre quase sempre em UTC: o conversor dá a hora UTC do erro, à qual falta somar o desvio local para a comparar com o horário de trabalho.
  4. Depuração e objetos Date em JavaScript

    O Date.now() devolve milissegundos, cerca de 1 788 000 000 000 em setembro de 2026. Dividir por 1000 e arredondar para baixo dá o timestamp Unix. O conversor serve depois para comparar valores de várias fontes e detetar desacertos de relógio.

Valores a ter à mão

  • A época Unix começa a 1 de janeiro de 1970 às 00:00:00 UTC: é o timestamp 0.
  • O limite de 32 bits, 2 147 483 647, cai a 19 de janeiro de 2038 às 03:14:07 UTC.
  • Em JavaScript, Date.now() devolve milissegundos, não segundos.
  • Um timestamp negativo indica uma data anterior a 1970: -1 é 31 de dezembro de 1969 às 23:59:59 UTC.

Última revisão do conteúdo: · escrito e verificado pela equipa Arteon

Perguntas frequentes

O que é a época Unix?

1º de janeiro de 1970 às 00:00:00 UTC. Todos os timestamps são medidos a partir desse ponto.

O que é o problema do ano 2038?

Os timestamps de 32 bits com sinal transbordam em 19 de janeiro de 2038 às 03:14:07 UTC. Os sistemas modernos usam 64 bits.

Os cálculos são feitos localmente?

Sim. Todos os cálculos são executados no seu navegador.

Qual é o timestamp Unix atual?

Em setembro de 2026 anda pelos 1 788 000 000 e cresce uma unidade por segundo. Para o valor exato, escreva a data de hoje no conversor ou execute Math.floor(Date.now() / 1000) na consola do navegador.

Como passo do resultado para a hora de Portugal ou do Brasil?

O conversor mostra UTC. Portugal continental está em UTC+0 no inverno e UTC+1 no verão, pelo que se soma zero ou uma hora; os Açores ficam uma hora atrás. Brasília está fixa em UTC-3 desde que o Brasil deixou de mudar a hora em 2019, portanto subtraem-se três horas.

Qual é a diferença entre o timestamp Unix e o do JavaScript?

O timestamp Unix conta segundos e o JavaScript conta milissegundos. Por isso 1700000000 escreve-se 1700000000000 em JavaScript. Dividir por 1000 e aplicar Math.floor leva de um ao outro.

Como obtenho um timestamp em JavaScript, PHP ou SQL?

Em JavaScript, Math.floor(Date.now() / 1000). Em PHP, time(). Em Python, int(time.time()). Em SQL, UNIX_TIMESTAMP() no MySQL e EXTRACT(EPOCH FROM NOW()) no PostgreSQL.

Um timestamp pode ser negativo?

Pode. Os valores negativos indicam datas anteriores a 1 de janeiro de 1970: -86400 é 31 de dezembro de 1969 às 00:00:00 UTC. A maioria das linguagens e bases de dados aceita-os sem problema.

Captura de ecrã da ferramenta gratuita da Arteon: Converta um timestamp Unix em data, e ao contrário

Ajude-nos a melhorar as nossas ferramentas

Tem uma ideia, encontrou um bug ou quer sugerir uma funcionalidade? Escreva-nos – respondemos em 24 horas.