Initializing, please wait a moment

Este Numero Longo e um Timestamp? Milissegundos vs Segundos

Ultima revisao 2026-05-03. Voce colou um numero de 10, 13, 16 ou 19 digitos de um log de servidor, de uma resposta de API ou de uma linha de banco de dados, e agora precisa saber o que e. Este guia e o teste de 30 segundos - conte os digitos, faca um sanity-check do ano, encaminhe para o conversor certo.

Resposta em 30 segundos. Conte os digitos no numero. 10 digitos → Unix segundos (cole em o conversor de milissegundos para data depois de multiplicar por 1000, ou use qualquer ferramenta de segundos para data). 13 digitos → Unix milissegundos (cole direto em o conversor de milissegundos para data). 16 digitos → microssegundos (raro; geralmente telemetria). 19 digitos → nanossegundos (raro; geralmente tracing de alta precisao). Qualquer outra contagem e o numero provavelmente e um ID, nao um timestamp.

O teste de 30 segundos: conte os digitos

Os formatos dominantes de timestamp Unix codificam tempo como uma contagem de "ticks desde 1970-01-01 00:00:00 UTC". O tamanho do tick difere - segundos, milissegundos, microssegundos, nanossegundos - e isso muda quantos digitos o numero tem em qualquer momento dado em 2026. Hoje (2026), aqui esta a regra pratica de contagem de digitos:

DigitosSignificado mais provavelOnde voce normalmente veConverter com
10Unix segundosUnix date +%s, PHP time(), Python time.time() truncado, Go time.Now().Unix(), a maioria dos formatos de log de servidor.Multiplique por 1000 e cole no conversor de milissegundos, ou use uma ferramenta dedicada de segundos para data.
13Unix milissegundosJavaScript Date.now(), Java System.currentTimeMillis(), a maioria das APIs JSON, escritas Firebase / Firestore, IDs de mensagens Slack / Discord codificados como ms.Cole direto no conversor de milissegundos para data.
16Unix microssegundosPostgreSQL now(), Python time.time_ns() // 1000, traces OpenTelemetry, BigQuery CURRENT_TIMESTAMP().Divida por 1000 e trate o resultado como milissegundos.
19Unix nanossegundosGo time.Now().UnixNano(), traces Prometheus, offsets Kafka, timestamps de evento eBPF.Divida por 1.000.000 e trate o resultado como milissegundos.
11, 12, 14, 15, 17, 18Provavelmente nao e um timestampID de sequencia, prefixo de ID Snowflake, numero de conta, variante de numero de telefone, numero de roteamento de conta.Veja "Quando o numero nao e um timestamp" abaixo.

Por que a maioria dos numeros que voce ve na web sao milissegundos

O Date.now() do JavaScript, o System.currentTimeMillis() do Java e a maioria dos backends modernos que emitem JSON sao padronizados para milissegundos desde o epoch Unix. Esse momento - 2026-05-03 09:38:00 UTC - e 1777800999 em segundos (10 digitos) mas 1777800999000 em milissegundos (13 digitos). A forma de 13 digitos aparece em respostas de rede, consoles de dev-tool do navegador, linhas de log e dashboards mais que qualquer outra forma de timestamp, que e por que a pergunta de leitor mais comum para esse tipo de timestamp e "este e um numero de 13 digitos, que data e essa?"

Essa observacao da um sanity-check rapido: se seu numero tem 13 digitos e comeca com 1777, e quase certamente um milissegundo Unix de maio de 2026. Se ele comeca com 16 ou 17 em 2026, esta no campo certo. Se ele comeca com 1 seguido de qualquer coisa (por exemplo 1234567890123), voce ainda deveria converte-lo para uma data e verificar o ano antes de assumir - dados de teste bogus frequentemente escolhem numeros de vaidade como 1234567890 que renderiza como 2009 (sexta-feira 13 de fevereiro).

Quando o numero NAO e um timestamp

Varios numeros longos parecem timestamps mas nao sao:

  • IDs Snowflake / Twitter / Discord (normalmente 18-19 digitos). Eles codificam um timestamp em seus bits altos mas os bits baixos sao IDs de worker e contadores de sequencia; tratar o numero inteiro de 19 digitos como um nanossegundo Unix produzira uma data muito errada. Decodificar Snowflake requer um bit-shift, nao uma divisao.
  • UUIDv7 (32 digitos hex, mas os primeiros 12 caracteres hex codificam milissegundos). Se voce tem 32 caracteres hex formatados com hifens, e um UUID, nao um timestamp - converta apenas os primeiros 48 bits se precisar do tempo embutido.
  • IDs de sequencia BIGINT de banco de dados. Esses sao inteiros auto-incrementados e nao tem componente de tempo; eles crescem ate a faixa de 12-13 digitos conforme a sequencia avanca. Verificacao rapida: se a mesma coluna em linhas adjacentes difere por 1 (ou por um pequeno passo previsivel), e uma sequencia, nao um timestamp.
  • Numeros de telefone armazenados como inteiros. Um numero de 10-12 digitos que comeca com um prefixo de codigo de pais (por exemplo 1212 para Nova York) pode ser um numero de telefone renderizado sem separadores. Converta e verifique: se o ano resultante e antes de 1970 ou depois de 2100, nao e um timestamp Unix.
  • Numeros de conta / pedido. Numeros de estilo de preenchimento como 1000000123 (10 digitos mas nao um valor de segundo Unix) normalmente tem um prefixo de largura fixa que os entrega - eles nao crescem de forma constante ao longo do tempo.

A desambiguacao mais barata e colar o numero no conversor de milissegundos e olhar o ano. Se o resultado e em 1970 (numero era na verdade segundos, voce o tratou como ms) ou em algum ano futuro distante como 56.000 (numero era milissegundos, voce o tratou como segundos), a contagem de digitos vai te dizer em que direcao converter. Se o resultado e plausivel (2025-2027 para dados ao vivo, 1990-2025 para dados historicos), voce tem sua resposta.

Playbook rapido de conversao

Tres passos, sem matematica:

  1. Conte os digitos. 10 digitos = segundos; 13 = milissegundos; 16 = microssegundos; 19 = nanossegundos; caso contrario veja a secao anterior.
  2. Cole no conversor certo. Numeros de 13 digitos vao direto para o conversor de milissegundos para data. Segundos de 10 digitos: anexe tres zeros (entao 1777800999 vira 1777800999000) e cole. Microssegundos de 16 digitos: descarte os tres ultimos digitos. Nanossegundos de 19 digitos: descarte os seis ultimos digitos. O conversor mostra a data UTC resultante e sua data local.
  3. Sanity-check o ano. Se o ano e inesperado (1970 ou 56000), voce converteu na direcao errada. Releia a contagem de digitos e tente de novo. Se o ano e plausivel, voce tem o valor certo.

Para o problema inverso - "me da os milissegundos Unix atuais para que eu possa comparar" - abra a ferramenta de milissegundos Unix atuais; ela tica ao vivo e copia para a area de transferencia. Comparar dois timestamps e o jeito mais rapido de confirmar se seu numero e "agora-ish" ou dados velhos.

Perguntas frequentes

E sobre numeros de 11 ou 12 digitos? Eles parecem quase segundos.
Segundos Unix nao produzirao 11 digitos ate o ano 2286. Milissegundos Unix tinham 12 digitos entre 2001 (10^12 ms = 31,7 anos depois de 1970) e 2286. Entao um numero de 12 digitos da era atual e mais provavelmente um ID de sequencia ou um numero de telefone; um numero de 11 digitos quase certamente nao e um valor Unix atual de nenhum tipo.

O numero e negativo ou comeca com um sinal de menos. E um timestamp?

Sim - timestamps Unix negativos sao datas antes de 1970-01-01 UTC. -1000000000 segundos e 1938-04-24. A maioria das bibliotecas padrao de linguagens lida com segundos negativos corretamente; algumas ferramentas web os rejeitam. O conversor de milissegundos aceitara entradas negativas.

Por que a mesma data da um numero diferente em dois sistemas?

O numero em si e sem fuso horario (tempo Unix e sempre UTC). O que difere e como cada sistema renderiza o numero em uma string legivel - uma ferramenta pode escolher UTC, outra seu fuso local. O inteiro Unix subjacente e o mesmo. Se dois sistemas discordam do numero para o mesmo momento, um deles esta usando uma unidade diferente (segundos vs milissegundos) ou um epoch diferente (por exemplo Excel usa 1900-01-01 como seu epoch, que nao e tempo Unix).

Posso obter segundos fracionarios de um valor Unix de 10 digitos?

Nao - um valor de segundos de 10 digitos tem resolucao de 1 segundo. Segundos fracionarios (precisao de milissegundos / microssegundos) requerem os formatos mais longos. Se seus dados precisam de precisao sub-segundo, voce deve estar armazenando milissegundos (13 digitos), microssegundos (16) ou nanossegundos (19). Armazenar apenas os segundos inteiros joga fora a precisao.

O JavaScript new Date().valueOf() e o mesmo que Date.now()?
Sim. Ambos retornam milissegundos Unix. Date.now() e a forma moderna, preferida; new Date().valueOf() e mais antigo, mais lento (aloca um objeto Date) mas produz o mesmo numero.

Relacionado

Why trust these tools

  • Ten-plus years of web tooling. The freetoolonline editorial team has shipped browser-based utilities since 2015. The goal has never changed: get you to a working output fast, without an install.
  • No install, no sign-up. Open a tool and get a working output in seconds - nothing to download and no account to create. Tools that need heavy processing run it on our service, so even a low-powered machine gets the job done.
  • Analytics stops at the page view. We measure which pages get visited, not what you type or upload inside a tool. There is nothing to sign in to and no profile is attached to your input.
  • Open-source core components. The processing engines underneath (libheif, libde265, pdf-lib, terser, clean-css, ffmpeg.wasm, and others) are public and audit-able. We link to each one in its tool page's footer.
  • Free, with or without ads. All tools are fully functional without sign-up. The Disable Ads button in the header is always available if you need a distraction-free run.