Desenvolvedor 🔒 Roda no seu navegador — nenhum dado é enviado

Converter milissegundos para data

Leia um timestamp Unix em milissegundos como data, com a parte abaixo de um segundo preservada na linha ISO 8601.

Timestamp Unix atual:
Timestamp → data
Data → timestamp

Um timestamp ou data por linha, até 500.

Converter milissegundos epoch em uma data

A maior parte dos valores de tempo que uma pessoa de front-end encontra está em milissegundos, porque é o que a linguagem entrega: Date.now() conta milissegundos, não segundos. Tudo o que vem depois, de pipelines de log a colunas de banco de dados, precisa então concordar sobre a unidade. Esta página abre o conversor de timestamp Unix com o menu “Unidade” já em “Milissegundos”, para que um número de treze dígitos seja lido corretamente no instante em que você o cola.

A resposta aparece em quatro linhas ao mesmo tempo: o instante no fuso selecionado no canto superior direito, o mesmo instante em <abbr title="Tempo Universal Coordenado">UTC, a forma ISO 8601 que a maioria das APIs quer de volta e a distância até agora em palavras simples. Tudo é calculado na página, então valores tirados de um log de produção ficam na sua máquina.

Treze dígitos, e quando contar não basta

A detecção automática trabalha com a contagem de dígitos e acerta em qualquer data deste século, mas a unidade é uma propriedade do sistema que produziu o número, não do número em si. Fixe o menu “Unidade” e o palpite desaparece. Errar aqui não é sutil, porque cada passo entre unidades desloca a data em três ordens de grandeza.

Unidade escolhida para 1735689600000Data que ela produzVeredicto
Segundos25 de outubro de 56971Errado por um fator de 1000 no sentido contrário
Milissegundos1 de janeiro de 2025, 00:00:00 UTCO que o número significa
Microssegundos21 de janeiro de 1970, 02:08:09 UTCUma data perto de 1970 é o sintoma clássico
Nanossegundos1 de janeiro de 1970, 00:28:55 UTCQuase a própria epoch

Uma data nos primeiros dias de 1970, ou uma a dezenas de milhares de anos, quase nunca é dado corrompido. É o mesmo número inteiro lido com a unidade errada, e a correção está no menu, não no número.

De onde vêm os timestamps em milissegundos

  • JavaScript: Date.now() e new Date().getTime() devolvem milissegundos, e new Date(n) os espera, motivo pelo qual um valor de dez dígitos tem que ser multiplicado por 1000 antes.
  • Java: System.currentTimeMillis() e Instant.toEpochMilli().
  • MongoDB: o tipo de data do BSON é uma contagem de milissegundos desde a epoch em 64 bits com sinal.
  • Kafka, Elasticsearch e a maioria dos formatos de log em JSON, que herdaram a unidade das linguagens que escrevem nelas.

Bancos de dados e ferramentas Unix vão para o lado oposto e contam em segundos, então a fronteira entre um serviço em JavaScript e uma coluna SQL é exatamente onde o fator 1000 se perde. Converter aqui um valor suspeito e ler a data é o jeito mais rápido de ver qual lado o deixou cair.

Arredondamento, e converter mais de um

Ir de milissegundos para segundos é um truncamento, então faça isso em um lugar só e em um sentido só. Misturar um arredondamento para baixo em um serviço com um arredondamento para o mais próximo em outro produz diferenças de um segundo que só aparecem quando dois eventos caem no mesmo segundo. A aba “Em lote” abaixo do conversor segue a mesma regra: cole até 500 linhas e cada linha recebe uma coluna “Segundos” com a fração descartada ao lado de uma coluna “ISO 8601 (UTC)” que a mantém, prontas para copiar como CSV.

Conversões relacionadas

Para um valor de dez dígitos existe converter timestamp para data, e para o sentido inverso converter data para timestamp, que devolve segundos e milissegundos para a data escolhida. O timestamp Unix atual é o contador ao vivo na barra do topo, e os timestamps do Discord precisam da forma em segundos, um motivo frequente para converter para baixo.

Guias relacionados