Ir para o conteúdo principal
Bethemesh

Converter um timestamp Unix em data (e uma data em timestamp)

Transforme um timestamp Unix numa data local e numa data UTC ISO 8601, ou uma data e hora num timestamp, com deteção automática de segundos e milissegundos.

  • Área de transferência

Integrar este widget

Personalize o resultado, verifique a pré-visualização e copie o código.

Pré-visualização

Tipo de código de integração

Código a copiar

Responsivo e redimensionado automaticamente pela Bethemesh.

Esta ferramenta foi útil?

Como funciona esta ferramenta?

Um timestamp Unix, ou tempo epoch, é o número de segundos decorridos desde 1 de janeiro de 1970 às 0h00 UTC. É assim que as bases de dados, os registos de servidor, as API e os tokens de autenticação guardam um instante, sem fuso horário nem formato de data. Este conversor traduz um timestamp numa data e hora legíveis, no seu fuso horário e em UTC no formato ISO 8601, e faz também o caminho inverso: dá o timestamp de uma data e hora introduzidas. Reconhece sozinho os timestamps em milissegundos usados pelo JavaScript e por muitas API.

Um timestamp conta os segundos desde o epoch Unix, 1970-01-01T00:00:00Z. A norma POSIX conta cada dia como exatamente 86 400 segundos: os segundos intercalares são ignorados, e por isso passa-se de timestamp para data com aritmética simples.

Introduza um número: a partir de 100 000 000 000 (12 algarismos) é lido em milissegundos, abaixo disso em segundos. A unidade usada aparece junto ao campo. A data é apresentada no fuso horário do seu dispositivo e o instante exato em UTC no formato ISO 8601.

No sentido inverso, a data e a hora introduzidas são interpretadas no fuso horário do seu dispositivo e convertidas em segundos inteiros, ou em milissegundos se acabou de converter um timestamp em milissegundos.

Os timestamps negativos designam instantes anteriores a 1970. O intervalo suportado é o das datas JavaScript: ±8,64 × 10¹⁵ milissegundos, cerca de 270 000 anos para cada lado de 1970.

Como usar esta ferramenta

  1. Introduza um timestamp ou uma data

    Cole um timestamp no seu campo ou escolha data e hora; o outro campo é atualizado.

  2. Verifique a unidade detetada

    Segundos ou milissegundos aparecem junto ao timestamp.

  3. Leia o instante em UTC

    O formato ISO 8601 termina em Z: é a hora UTC, sem ambiguidade de fuso.

  4. Use «Agora» ou partilhe

    O botão insere o timestamp atual; a ligação do cálculo guarda o timestamp introduzido.

Do timestamp à data

Um timestamp é uma distância em segundos ao epoch Unix; a data deduz-se com dias de 86 400 segundos.

Timestamp em segundos

t = (instante − 1970-01-01T00:00:00Z) em segundos

Dias e resto

dias = ⌊t / 86400⌋; segundos do dia = t − 86400 × dias

Os dias contam-se desde 1 de janeiro de 1970, em UTC.

Milissegundos

t(ms) = 1000 × t(s)

t
timestamp Unix em segundos
86400
segundos num dia POSIX (24 × 60 × 60)

Casos de uso

Ler um registo ou uma base de dados

Traduza uma coluna created_at ou uma linha de log numa data compreensível.

Depurar uma API ou um token

Verifique os campos exp, iat ou nbf de um JWT, ou a data devolvida por uma API, em segundos ou milissegundos.

Preparar uma consulta

Obtenha o timestamp de uma data exata para filtrar registos ou agendar uma tarefa.

Comparar hora local e UTC

Veja de relance a hora local e a hora UTC do mesmo instante, útil para uma equipa espalhada por vários fusos.

Exemplos

Um timestamp de 10 algarismos

Ou seja, 14 de novembro de 2023 às 22:13:20 em Lisboa (UTC+0 no inverno). 1 700 000 000 ÷ 86 400 = 19 675 dias inteiros depois de 1 de janeiro de 1970, mais 80 000 s, ou seja, 22 h 13 min 20 s.

Entrada

1700000000

Resultado

2023-11-14T22:13:20.000Z

O mesmo instante em milissegundos

Com 13 algarismos, o número é lido em milissegundos e o resultado é idêntico.

Entrada

1700000000000

Resultado

2023-11-14T22:13:20.000Z

O problema do ano 2038

É o maior inteiro com sinal de 32 bits. Um sistema que guarda o timestamp em 32 bits entra em overflow um segundo depois.

Entrada

2147483647

Resultado

2038-01-19T03:14:07.000Z

Antes de 1970

Um timestamp negativo conta para trás a partir do epoch: −86 400 s é um dia antes.

Entrada

-86400

Resultado

1969-12-31T00:00:00.000Z

Dicas e boas práticas

  • 10 algarismos: segundos (até ao ano 2286); 13 algarismos: milissegundos. Um timestamp em milissegundos anterior a março de 1973 tem menos de 12 algarismos e seria lido em segundos.
  • Um timestamp não contém fuso horário: é sempre um instante UTC. Só a sua apresentação depende do fuso.
  • O botão de inversão muda apenas a ordem dos campos; a conversão funciona nos dois sentidos a qualquer momento.
  • Para mostrar uma data noutro fuso horário que não o seu, use o conversor de fusos horários.
  • O timestamp em segundos descarta os milissegundos: 12:00:00,999 dá o mesmo valor que 12:00:00.

Fontes e referências

Perguntas frequentes

O que é o timestamp Unix?

O número de segundos decorridos desde 1 de janeiro de 1970 às 00:00:00 UTC, chamado epoch Unix. É definido pela norma POSIX e usado pela maioria dos sistemas informáticos.

Como sei se um timestamp está em segundos ou em milissegundos?

Conte os algarismos: hoje, 10 para segundos e 13 para milissegundos. A ferramenta considera em milissegundos qualquer número a partir de 100 000 000 000.

O timestamp conta os segundos intercalares?

Não. A POSIX conta cada dia como 86 400 segundos e o JavaScript também ignora os segundos intercalares. É isso que torna exata a conversão por cálculo.

Porque é que a hora apresentada difere da hora UTC?

O campo de data usa o fuso horário do seu dispositivo, hora de verão incluída. A linha ISO 8601 dá o mesmo instante em UTC.

O que é o problema do ano 2038?

Os sistemas que guardam o timestamp num inteiro com sinal de 32 bits não conseguem passar de 2 147 483 647, ou seja, 19 de janeiro de 2038 às 03:14:07 UTC. Os sistemas de 64 bits não são afetados.

Posso converter uma data anterior a 1970?

Sim. O timestamp passa a ser negativo: 31 de dezembro de 1969 às 0h00 UTC corresponde a −86 400.

E uma hora que não existe por causa da mudança de hora?

Na passagem para a hora de verão, uma hora local como 1h30 em Portugal não existe. O navegador desloca-a; verifique a linha UTC para saber que instante foi realmente usado.

Ferramentas relacionadas

Ferramentas semelhantes ou complementares a esta.

Ferramentas semelhantes

Converta uma data e uma hora de um fuso horário para outro, hora de verão incluída.

Datas e tempoEm destaqueUtilizar esta ferramenta

Expresse a diferença entre duas datas e horas como «há 3 dias» ou «daqui a 2 horas».

Datas e tempoUtilizar esta ferramenta
GuiaBoas práticasIniciante

Cálculos de data e hora: guia prático

Diferenças entre datas, durações, dias úteis, semanas ISO, recorrências e formatos: escolha o cálculo adequado.

7 de setembro de 20262 min