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.

Dicas

  • 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.

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.
ツールくん

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.

→ Ver todas as curiosidades