Décodeur d'horodatage UUID v7

Extrayez l'horodatage en millisecondes intégré dans les 48 premiers bits d'un UUID v7 et reconvertissez-le en date et heure UTC en collant simplement la chaîne. Détecte les versions autres que v7 et les anomalies de variant, et fonctionne comme l'inverse de l'outil jumeau « Générateur d'UUID v7 ».

Disposition des bits de l'UUID v7

Plage de bits Champ Description
0-47 unix_ts_ms Millisecondes depuis l'époque Unix, stockées en big-endian. La valeur extraite par cet outil.
48-51 version Le numéro de version de l'UUID. Fixé à 0111 (7 en hexadécimal) pour la v7.
52-63 rand_a 12 bits de données aléatoires. Certaines implémentations les utilisent pour préserver l'ordre au sein d'une même milliseconde.
64-65 variant Valeur fixe 10 indiquant le variant de la RFC 4122/9562. Le premier chiffre hexadécimal devient 8/9/a/b.
66-127 rand_b 62 bits de données aléatoires, apportant de l'entropie pour éviter les collisions.

Astuces

  • Tout le décodage s'effectue entièrement dans le JavaScript de votre navigateur ; l'UUID saisi n'est jamais envoyé au serveur de toolbase.cc.
  • Si la clé primaire de votre base de données utilise l'UUID v7, vous pouvez retrouver le moment de création de l'enregistrement en collant simplement la clé ici, même sans colonne created_at dédiée.
  • Saisir un UUID autre que v7 (comme v4) déclenche un avertissement, mais la valeur de référence extraite mécaniquement des 48 premiers bits reste affichée, ce qui est utile pour comprendre les différences entre les formats.
  • Si vous devez générer un UUID, utilisez l'outil jumeau « Générateur d'UUID v7 » : il produit des UUID que cet outil peut décoder directement en retour.
  • Coller ici un par un les UUID v7 trouvés dans des fichiers de journal ou des réponses d'API est un moyen pratique d'estimer quand des événements se sont produits dans un système externe lors du débogage.

Questions fréquentes

L'UUID v7 est standardisé dans la RFC 9562, et un horodatage Unix précis à la milliseconde est fixé en ordre big-endian dans les 48 premiers des 128 bits. Il suffit de convertir les 12 premiers chiffres hexadécimaux en un nombre et de l'interpréter comme des millisecondes pour retrouver le moment de génération.

Comme l'UUID v4 est entièrement aléatoire, l'« horodatage » qui en est extrait est un nombre dénué de sens, sans rapport avec un quelconque moment réel de création. Cet outil examine le chiffre de version et affiche un avertissement, mais montre tout de même la valeur extraite mécaniquement des 48 premiers bits à titre de référence.

Selon la spécification de l'UUID v7, la précision est d'une milliseconde. Si plusieurs UUID v7 sont générés au sein de la même milliseconde, leurs 48 premiers bits sont identiques, et leur ordre de génération ne peut pas être retrouvé ; cette distinction repose entièrement sur les valeurs aléatoires rand_a et rand_b.

Les UUID conformes à la RFC 4122/9562 exigent que le premier chiffre hexadécimal du 4e groupe soit 8, 9, a ou b. S'il s'agit d'une autre valeur (0-7 ou c-f), cela peut indiquer un schéma de génération d'identifiant personnalisé ou des bits corrompus, d'où l'affichage d'un avertissement.
ツールくん

Anecdote — Donner à l'UUID une horloge intégrée

Ce qui rend l'UUID v7 révolutionnaire, c'est que l'identifiant lui-même conserve en permanence son moment de génération. Avec l'ancien UUID v4, une colonne created_at séparée était indispensable pour savoir quand un enregistrement avait été créé, mais si la clé primaire d'une table utilise l'UUID v7, le moment de génération peut être retrouvé mécaniquement à partir de la seule chaîne de l'identifiant. Cet outil propose ce processus de récupération comme l'inverse de l'outil jumeau « Générateur d'UUID v7 ».

Cette propriété est particulièrement utile lors d'enquêtes sur des incidents et de migrations de données. Si un identifiant de commande enfoui dans un ancien journal, ou un identifiant d'événement reçu d'un système externe, se trouve être au format UUID v7, vous pouvez savoir instantanément, de façon approximative, quand l'enregistrement a été créé, sans consulter de colonne d'horodatage dédiée. Cela s'applique aussi aux systèmes hérités dépourvus de colonne created_at, ou à l'analyse de valeurs UUID v7 émises par une autre entreprise.

Cela dit, certaines réserves s'imposent. Un horodatage d'UUID v7 dépend entièrement de l'horloge de la machine génératrice ; si l'horloge de ce serveur est décalée, le résultat extrait le sera aussi. Gardez également à l'esprit que cet outil extrait mécaniquement un « horodatage potentiel » même à partir d'autres versions d'UUID comme la v4 : il s'agit purement d'une interprétation de positions de bits, qui ne garantit pas que la valeur obtenue ait un sens.

→ Voir toutes les anecdotes