Decodificador de timestamp de UUID v7

Extraia o timestamp em milissegundos embutido nos primeiros 48 bits de um UUID v7 e converta-o de volta para data e hora UTC apenas colando a string. Detecta versões que não são v7 e anomalias no variant, funcionando como o inverso da ferramenta irmã "Gerador de UUID v7".

Layout de bits do UUID v7

Intervalo de bits Campo Descrição
0-47 unix_ts_ms Milissegundos desde a época Unix, armazenados em big-endian. O valor que esta ferramenta extrai.
48-51 version O número da versão do UUID. Fixo em 0111 (7 em hexadecimal) para v7.
52-63 rand_a 12 bits de dados aleatórios. Algumas implementações os usam para preservar a ordem dentro do mesmo milissegundo.
64-65 variant Valor fixo 10 que indica o variant da RFC 4122/9562. O primeiro dígito hexadecimal resulta em 8/9/a/b.
66-127 rand_b 62 bits de dados aleatórios, fornecendo entropia para evitar colisões.

O que significa extrair a marca temporal de um UUID v7

O UUID v7, normalizado no RFC 9562 em 2024, incorpora o instante de criação nos seus primeiros 48 bits como uma marca temporal Unix em milissegundos. É por isso que, ao ordenar um conjunto deles, ficam por ordem de criação, e por isso usá-los como chaves primárias mantém baixa a fragmentação dos índices. Cole aqui um UUID e esta ferramenta recupera esses 48 bits como data e hora em UTC.

Também indica a versão e a variante. Se colar algo que não seja um v7, a marca temporal é na mesma calculada e apresentada, acompanhada de um aviso de que o valor não é um v7. Um v4 aleatório dará uma data sem sentido, mas vê-lo acontecer é uma boa forma de perceber o que cada tipo de UUID realmente transporta. Uma tabela de distribuição de bits mostra o que vem depois desses primeiros 48 bits. Tudo corre no seu navegador.

Como ler uma marca temporal dentro de um UUID

  1. Cole o UUID A forma padrão de 36 caracteres com hífenes, 8-4-4-4-12. Funciona tanto em maiúsculas como em minúsculas.
  2. Verifique a versão e a variante Um v7 não gera qualquer aviso. Qualquer outra coisa é assinalada como não sendo um v7.
  3. Leia a hora recuperada Surge de três formas: milissegundos Unix, ISO 8601 em UTC e a hora local do seu próprio dispositivo.
  4. Consulte a tabela de bits Pode ver o que ocupa cada intervalo de bits depois da marca temporal de 48 bits: a versão, a variante e a parte aleatória.

Dicas para aproveitar melhor

  • Toda a decodificação acontece inteiramente dentro do JavaScript do seu navegador; o UUID informado nunca é enviado ao servidor do toolbase.cc.
  • Se a chave primária do seu banco de dados usa UUID v7, você pode recuperar o momento de criação do registro apenas colando a chave aqui, mesmo sem uma coluna created_at dedicada.
  • Informar um UUID que não seja v7 (como v4) gera um aviso, mas o valor de referência extraído mecanicamente dos primeiros 48 bits ainda é exibido, o que é útil para aprender como os formatos diferem.
  • Se precisar gerar um UUID, use a ferramenta irmã "Gerador de UUID v7" — ela produz UUIDs que esta ferramenta consegue decodificar de volta diretamente.
  • Colar aqui, um a um, os valores de UUID v7 encontrados em arquivos de log ou respostas de API é uma forma prática de estimar quando eventos ocorreram em um sistema externo durante a depuração.

Onde isto ajuda

Recuperar quando ocorreu um evento registado

Mesmo um registo sem coluna de data pode ser datado se as suas chaves primárias forem v7, o que ajuda a reconstruir a ordem dos factos durante um incidente.

Confirmar que as chaves ordenam por criação

Introduza os UUID de vários registos um após outro e verifique se a implementação produz mesmo valores ordenados no tempo.

Decidir se adotar v7

Ver o que se consegue extrair torna tangível o compromisso: quem tiver o valor pode ler o instante de criação, o que é um inconveniente sempre que esse momento seja sensível.

Distinguir versões

Saber à vista se um UUID recebido é um v4 ou um v7 é difícil, e isto resolve-o de imediato.

Termos dos UUID

UUID v7
A versão normalizada no RFC 9562, que leva uma marca temporal Unix em milissegundos nos primeiros 48 bits. Poder ser ordenado por tempo é o que principalmente o distingue do v4.
Versão
O dígito na décima terceira posição hexadecimal, que indica como o UUID foi gerado. Num v7 é 7.
Variante
Um valor à parte que descreve a disposição interna. Nos UUID que seguem o RFC 9562, a décima sétima posição é 8, 9, a ou b.
Milissegundos Unix
Milissegundos decorridos desde 1 de janeiro de 1970 às 00:00:00 UTC. Quarenta e oito bits bastam para chegar ao ano 10889.
Em que difere o v4
Um v4 é essencialmente todo aleatório e **não transporta qualquer informação sobre quando foi criado.** Por isso não se ordena por criação, mas em troca ninguém consegue ler o seu momento de origem.

Perguntas frequentes

O UUID v7 é padronizado na RFC 9562, e um timestamp Unix com precisão de milissegundo é fixado em ordem big-endian dentro dos primeiros 48 de seus 128 bits. Basta converter os primeiros 12 dígitos hexadecimais em um número e interpretá-lo como milissegundos para recuperar o momento de geração.

Como o UUID v4 é totalmente aleatório, o "timestamp" extraído dele é um número sem sentido, sem relação com qualquer momento real de criação. Esta ferramenta verifica o dígito de versão e exibe um aviso, mas ainda mostra o valor extraído mecanicamente dos primeiros 48 bits como referência.

Segundo a especificação do UUID v7, a precisão é de um milissegundo. Se vários UUID v7 forem gerados no mesmo milissegundo, seus primeiros 48 bits serão idênticos, e a ordem de geração entre eles não pode ser recuperada — essa distinção fica inteiramente a cargo dos valores aleatórios rand_a e rand_b.

UUIDs em conformidade com a RFC 4122/9562 exigem que o primeiro dígito hexadecimal do 4º grupo seja 8, 9, a ou b. Se for qualquer outro valor (0-7 ou c-f), pode indicar um esquema de geração de ID personalizado ou bits corrompidos, por isso um aviso é exibido.
Tool-kun

Curiosidade — Dando ao UUID um relógio embutido

O que torna o UUID v7 revolucionário é o fato de o próprio identificador guardar permanentemente seu momento de geração. Com o antigo UUID v4, uma coluna created_at separada era essencial para saber quando um registro foi criado, mas se a chave primária de uma tabela usa UUID v7, o momento de geração pode ser recuperado mecanicamente apenas a partir da string do ID. Esta ferramenta oferece esse processo de recuperação como o inverso da ferramenta irmã "Gerador de UUID v7".

Essa propriedade é especialmente útil em investigações de incidentes e migrações de dados. Se o ID de um pedido enterrado em um log antigo, ou um ID de evento recebido de um sistema externo, estiver em formato UUID v7, você consegue saber instantaneamente, de forma aproximada, quando o registro foi criado, sem precisar consultar uma coluna de timestamp dedicada. Isso também se aplica a sistemas legados sem coluna created_at, ou à análise de valores UUID v7 emitidos por outra empresa.

Dito isso, há ressalvas. Um timestamp de UUID v7 depende inteiramente do relógio da máquina que o gerou, então, se o relógio desse servidor estiver errado, o resultado extraído também estará. Além disso, tenha em mente que esta ferramenta extrai mecanicamente um "possível timestamp" mesmo de outras versões de UUID, como v4 — isso é puramente uma interpretação de posições de bits e não garante que o valor resultante seja significativo.