Conversor de timestamp Unix

Cole um número como 1700000000 para ver a data que ele representa, ou escolha uma data para obter o número. Você não precisa dizer se são segundos, milissegundos, microssegundos ou nanossegundos. O tamanho do número entrega isso.

Horário Unix agora, em segundos

…

Os resultados aparecem enquanto você digita. Todas as conversões são feitas pelo seu navegador: os valores que você digita não são enviados para nós.

Número para data

Data para número

Os campos de data e hora são lidos no fuso horário escolhido acima. Um texto que termina com Z ou com um deslocamento como +02:00 mantém o próprio fuso.

Um número, o mesmo instante em todo lugar

Pergunte a hora a três pessoas numa videochamada e você pode ouvir 9:00, 15:00 e 23:00. Todas estão certas, o que não ajuda em nada um computador que precisa pôr eventos em ordem, expirar uma sessão ou assinar um documento.

O tempo Unix contorna isso contando os segundos desde a meia-noite UTC de 1º de janeiro de 1970, um ponto de partida conhecido como epoch. A contagem chegou a 1.700.000.000 em 14 de novembro de 2023, às 22:13:20 UTC. Eram 17:13 em Nova York e já a manhã seguinte em Tóquio, e todas as máquinas da Terra mostravam o mesmo número.

Um timestamp não tem fuso horário nem horário de verão. Os fusos só entram quando o número é transformado em algo que uma pessoa lê. É por isso que esta página pergunta qual fuso você quer e mostra o UTC ao lado.

Segundos, milissegundos e além

A contagem original é em segundos. Muitos sistemas querem passos mais finos, então contam unidades menores a partir da mesma epoch, e nada no número diz qual unidade você está vendo. É preciso se guiar pelo comprimento:

UnidadeDígitos hojeOrigem típica
Segundos10Ferramentas Unix, PHP time(), datas de JWT, a maioria das APIs
Milissegundos13JavaScript Date.now(), Java, Kafka
Microssegundos16PostgreSQL, Python time.time_ns() // 1000, logs de rastreamento
Nanossegundos19Go UnixNano(), InfluxDB, OpenTelemetry

O conversor faz o mesmo: abaixo de 100 bilhões ele lê segundos, abaixo de 100 trilhões milissegundos, depois microssegundos, depois nanossegundos. Ele diz qual unidade presumiu. O palpite só erra para datas próximas de 1970 escritas numa unidade fina, e a lista “Unidade” permite corrigi-lo.

Unidades trocadas são o bug clássico de timestamp. Leia segundos como milissegundos e você cai em janeiro de 1970. Leia milissegundos como segundos e você cai dezenas de milhares de anos no futuro.

Valores que merecem uma segunda olhada

Zero, ou um número muito pequeno
0 é a própria epoch. É o que um campo de data vazio guarda, e nos fusos a oeste do UTC aparece como 31 de dezembro de 1969. Valores a menos de um mês da epoch também são marcados, já que costumam ser durações ou campos que ninguém preencheu.
Números negativos
São válidos e contam para trás: -86400 é 31 de dezembro de 1969. Alguns softwares mais antigos não conseguem guardá-los.
2.147.483.648 ou mais
Um inteiro de 32 bits com sinal para em 2.147.483.647, que é 03:14:07 UTC de 19 de janeiro de 2038. Um segundo depois, esse contador dá a volta para dezembro de 1901. Os sistemas que ainda guardam o tempo em 32 bits têm até lá para passar para 64.
-1
Muitas vezes é o que uma função devolve quando não conseguiu ler uma data.

De uma data de volta a um número

O caminho inverso exige mais uma informação: o fuso em que a data foi escrita. “9 de março de 2025 às 14:30” é um instante em Chicago e outro em Berlim, com seis horas de diferença. Os campos de data e hora são lidos no fuso que você seleciona. Um texto como 2025-03-09T14:30:00-05:00, ou um que termina em Z, traz o próprio deslocamento e é lido como está escrito.

O horário de verão produz dois casos estranhos, e a ferramenta mostra os dois:

  • Um horário que não existe. Quando os relógios saltam de 02:00 para 03:00, esse dia não tem 02:30. O conversor leva a leitura para depois do salto, como faz a maioria dos softwares, e avisa.
  • Um horário que existe duas vezes. Quando os relógios voltam de 02:00 para 01:00, 01:30 acontece duas vezes, com uma hora de diferença. O conversor devolve o primeiro e também lhe dá o segundo.

O tempo Unix ignora os segundos intercalares: todo dia conta exatamente 86.400 segundos. A aritmética fica simples, mas um timestamp não é uma contagem real dos segundos decorridos. Ele está defasado em 27 desde 1972.

As regras de fuso vêm do banco de dados de fusos horários embutido no seu navegador. Para datas passadas, elas refletem as regras conhecidas hoje, e um país ainda pode mudar as suas regras para datas futuras.

Perguntas frequentes

O que é um timestamp Unix?

O número de segundos desde 1º de janeiro de 1970 às 00:00:00 UTC, sem contar os segundos intercalares. Ele identifica um instante com um único inteiro que não depende de nenhum fuso horário, por isso é fácil de guardar, comparar e subtrair.

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

Conte os dígitos. Para datas atuais, segundos têm 10 dígitos e milissegundos 13. Microssegundos têm 16 e nanossegundos 19. Se a sua data cai em 1970 ou num ano muito distante, a unidade foi lida errado.

Por que a minha data aparece como 1º de janeiro de 1970?

O valor guardado é 0 ou próximo disso. Ou o campo nunca foi preenchido, ou uma conversão que falhou devolveu 0, ou um valor em segundos foi lido como milissegundos. A oeste do UTC, o mesmo instante aparece como 31 de dezembro de 1969.

O que é o problema do ano 2038?

Um software que guarda o tempo Unix num inteiro de 32 bits com sinal consegue contar até 2.147.483.647, que é 03:14:07 UTC de 19 de janeiro de 2038. O segundo seguinte estoura e é lido como uma data em dezembro de 1901. A solução é guardar o tempo em 64 bits.

Um timestamp Unix tem fuso horário?

Não. Ele conta segundos a partir de um instante definido em UTC, então o mesmo número está correto em qualquer lugar. Um fuso horário só é aplicado quando o número é mostrado como data de calendário e hora do relógio.

Como obter o tempo Unix atual em código?

Num shell, date +%s. Em JavaScript, Math.floor(Date.now() / 1000). Em Python, int(time.time()). Em PHP, time(). Em SQL, UNIX_TIMESTAMP() no MySQL e EXTRACT(EPOCH FROM now()) no PostgreSQL.