Conversor de timestamp Unix — de epoch para data e de data para epoch

Converta epoch em segundos, milissegundos, microssegundos ou nanossegundos para datas em qualquer fuso horário, e vice-versa. Relógio ao vivo, modo em lote, trechos de código.

Hora Unix atual
Segundos
—
Milissegundos
—

Timestamp para data

Segundos, milissegundos, microssegundos ou nanossegundos; valores negativos são anteriores a 1970.
Lido como
segundos
UTC
Thu 2025-10-16 00:00:00.000 (UTC+00:00)
Local
UTC
ISO 8601 (UTC)
2025-10-16T00:00:00.000Z
ISO 8601 (UTC)
RFC 2822
Relativo
Segundos
1760572800
Milissegundos
1760572800000
Microssegundos
1760572800000000
Nanossegundos
1760572800000000000

Data para timestamp

AAAA-MM-DD HH:mm:ss é lido no fuso à direita. ISO 8601 com Z ou um offset, e RFC 2822, trazem o próprio fuso.
Segundos Unix
1767225600
Milissegundos
1767225600000
ISO 8601 (UTC)
2026-01-01T00:00:00.000Z
UTC

Início e fim do dia, semana, mês e ano

em UTC; as semanas começam na segunda-feira (ISO 8601)

Conversão em lote

Timestamps viram ISO 8601 em UTC; datas viram segundos Unix. Até 5.000 linhas.
1700000000s
1760572800000ms
-1s
2038-01-19 03:14:07data
0s

Obter o timestamp atual em código

Math.floor(Date.now() / 1000)   // seconds
Date.now()                      // milliseconds

Funciona totalmente no seu navegador. Nada do que você digita é enviado para nós nem armazenado. Ver todas as ferramentas grátis.

Encontrou um problema ou algo que poderia ser melhor? Lemos todas as mensagens e corrigimos rápido.

Este conversor de timestamp Unix transforma um valor epoch em uma data legível e uma data de volta em valor epoch, em UTC, no seu fuso horário ou em qualquer um dos cerca de 400 fusos IANA que o seu navegador conhece. Cole 1760572800, 1760572800000 ou um valor de 19 dígitos em nanossegundos tirado de uma linha de log: a unidade é detectada pelo número de dígitos, e você pode corrigi-la quando um valor for ambíguo.

Valores grandes e incomuns são tratados com exatidão. Os dígitos são lidos como BigInt, então um timestamp em nanossegundos mantém os últimos dígitos em vez de ser arredondado; timestamps negativos, anteriores a 1970, são arredondados para baixo até o milissegundo correto; e qualquer valor fora do intervalo de datas do JavaScript (cerca de 271.821 a.C. a 275.760 d.C.) é informado como fora do intervalo em vez de aparecer como "Invalid Date". Os deslocamentos de fuso horário, incluindo as mudanças de horário de verão, vêm dos dados de fuso do próprio navegador. Nada do que você digita sai da página.

Como usar

  1. Cole um timestamp no primeiro campo. A tabela o mostra em UTC, no seu fuso, no fuso selecionado, em ISO 8601, RFC 2822 e tempo relativo.
  2. Se a unidade estiver errada (um valor de 12 dígitos pode ser segundos depois de 5138 d.C. ou milissegundos em 1973), escolha-a no menu Unidade.
  3. Para o caminho inverso, digite uma data como AAAA-MM-DD HH:mm:ss e escolha o fuso em que ela foi escrita; strings ISO com Z ou com deslocamento são lidas como estão.
  4. Use a tabela de início/fim para consultas de intervalo como "tudo deste mês", e a caixa de lote para uma coluna de valores de um CSV ou log.
  5. Copie qualquer valor com o botão dele, ou copie o trecho da sua linguagem para obter o timestamp atual no código.

Perguntas frequentes

O que é um timestamp Unix?

Um timestamp Unix (tempo epoch) é o número de segundos decorridos desde 00:00:00 UTC de 1º de janeiro de 1970, sem contar os segundos bissextos. Ele não tem fuso horário: o mesmo instante tem o mesmo timestamp em qualquer lugar, e é por isso que bancos de dados e APIs o usam. Muitos sistemas guardam milissegundos (o Date.now() do JavaScript, o currentTimeMillis do Java), e alguns guardam microssegundos ou nanossegundos.

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

Conte os dígitos. Um timestamp atual em segundos tem 10 dígitos; em milissegundos, 13; em microssegundos, 16; e em nanossegundos, 19. Esta ferramenta usa esses limites automaticamente. O único intervalo ambíguo é de 11 a 12 dígitos, que pode ser segundos num futuro distante ou milissegundos no início dos anos 1970; nesse caso, escolha a unidade manualmente.

O que é o problema do ano 2038?

Sistemas que guardam o tempo Unix como inteiro de 32 bits com sinal só conseguem contar até 2.147.483.647, que corresponde a 03:14:07 UTC de 19 de janeiro de 2038. Um segundo depois, o valor dá a volta para um número negativo e é lido como dezembro de 1901. Sistemas operacionais, linguagens e bancos de dados modernos usam tempo de 64 bits, mas dispositivos embarcados antigos, formatos de arquivo e colunas de banco declaradas como INT de 32 bits ainda têm o problema.

Os timestamps Unix incluem segundos bissextos?

Não. O tempo Unix trata cada dia como tendo exatamente 86.400 segundos, então um segundo bissexto não é contado, e o timestamp se repete ou fica parado por um segundo quando ele ocorre. Isso simplifica a aritmética de datas, ao custo de ficar defasado em relação ao tempo atômico (TAI) pelo total acumulado de segundos bissextos, atualmente 37. Para quase todo trabalho com aplicações, isso não importa.

Um timestamp Unix pode ser negativo?

Sim. Valores negativos contam para trás a partir de 1970: -1 é 23:59:59 UTC de 31 de dezembro de 1969, e -86400 é o início desse dia. A maioria das linguagens lida bem com timestamps negativos, mas algumas APIs antigas e funções de planilha os rejeitam, então confira antes de guardar datas de nascimento ou datas históricas como valores epoch.

Por que o horário convertido parece estar algumas horas errado?

Quase sempre é confusão de fuso horário: o timestamp está correto, mas foi exibido em UTC quando você esperava o horário local, ou uma string de data local foi interpretada como UTC. Um timestamp em si nunca carrega fuso. Confira o seletor de fuso aqui e, no código, garanta que uma string de data sem deslocamento seja interpretada no fuso que você pretende.

Segundos, milissegundos, microssegundos, nanossegundos: quem usa qual

• Segundos (10 dígitos): time() do Unix e do POSIX, time() do PHP, int(time.time()) do Python, EXTRACT(EPOCH) do PostgreSQL, claims exp/iat/nbf de JWT, a maioria das APIs HTTP.

• Milissegundos (13 dígitos): Date.now() do JavaScript, System.currentTimeMillis() do Java, Elasticsearch e muitas APIs JSON, timestamps de registros do Kafka.

• Microssegundos (16 dígitos): o armazenamento interno de timestamps do PostgreSQL, a precisão do datetime do Python, TIMESTAMP_MICROS do Google BigQuery.

• Nanossegundos (19 dígitos): time.UnixNano() do Go, time.time_ns() do Python, InfluxDB e remote-write do Prometheus, clock_gettime do Linux. Um number do JavaScript não consegue guardá-los com exatidão, e é por isso que esta ferramenta os lê como BigInt.

Quando dois sistemas discordam por um fator de 1.000, um está em segundos e o outro em milissegundos. Esse único erro responde pela maioria dos bugs de "data aparece como 1970" e "data aparece como ano 50.000".

Fusos horários e horário de verão: o que pode dar errado

Converter um timestamp em horário local nunca é ambíguo: um instante corresponde a uma única leitura de relógio em cada fuso. O caminho inverso, não. Quando os relógios são adiantados, um horário local como 02:30 no dia da mudança nunca acontece; quando são atrasados, 01:30 acontece duas vezes.

Este conversor segue as mesmas regras do padrão da API Temporal do JavaScript: um horário pulado é lido com o deslocamento de antes da mudança (então 02:30 vira 03:30 no horário de verão), e um horário repetido é resolvido para a primeira ocorrência. Se o seu código usar outra regra, o resultado pode ficar uma hora diferente perto dessas duas datas todo ano.

A prática mais segura é guardar e transmitir instantes como timestamps UTC ou strings ISO 8601 com deslocamento explícito, e converter para o horário local só na exibição, usando um nome de fuso IANA como America/Toronto em vez de um deslocamento fixo como -05:00, que fica errado durante metade do ano.

ISO 8601 x RFC 2822 x tempo Unix

O ISO 8601 (2026-10-16T08:00:00Z ou 2026-10-16T04:00:00-04:00) é ordenado corretamente como texto, não é ambíguo e é o que APIs JSON, atributos datetime do HTML e a maioria dos bancos de dados esperam. Use-o sempre que uma pessoa puder ler o valor.

O RFC 2822 (Fri, 16 Oct 2026 08:00:00 +0000) é o formato de e-mail e de cabeçalhos HTTP. É legível, mas não é ordenado como texto e só é definido para anos a partir de 1900.

Um timestamp Unix é o mais compacto e o mais rápido de comparar, mas é ilegível sem um conversor e não dá nenhuma pista da sua unidade. Uma regra razoável: tempo Unix dentro de um sistema, ISO 8601 nas fronteiras dele.

Ferramentas grátis relacionadas

  • Gerador de expressões cron — Monte um agendamento cron com menus ou cole um pronto, leia-o em português e veja as próximas 10 execuções no seu fuso e em UTC. Grátis, no navegador.
  • Decodificador JWT — Decodifique o header e o payload de um JWT, leia a expiração em linguagem simples, verifique assinaturas HS, RS, PS e ES ou assine um novo token. Nada sai do seu navegador.
  • Gerador de UUID — Gere UUID v4 ou v7 ordenado por tempo, ULIDs e NanoIDs em massa, ou cole um ID para ver a versão e o timestamp embutido.
  • Conversor de bases numéricas — Converta inteiros de qualquer tamanho entre binário, octal, decimal, hexadecimal, base 32, base 36 e qualquer base de 2 a 36, com visualização em complemento de dois.