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.

Ce que signifie extraire l'horodatage d'un UUID v7

L'UUID v7, normalisé par la RFC 9562 en 2024, intègre l'instant de création dans ses 48 premiers bits sous la forme d'un horodatage Unix en millisecondes. C'est pourquoi un ensemble d'UUID triés se retrouve dans l'ordre de création, et pourquoi leur usage comme clés primaires limite la fragmentation des index. Collez ici un UUID et cet outil restitue ces 48 bits sous forme de date et d'heure en UTC.

Il indique également la version et la variante. Si vous collez autre chose qu'un v7, l'horodatage est tout de même calculé et affiché, accompagné d'un avertissement précisant que la valeur n'est pas un v7. Un v4 aléatoire donnera une date dépourvue de sens, mais le constater aide à comprendre ce que chaque type d'UUID transporte réellement. Un tableau de répartition des bits montre ce qui suit ces 48 premiers bits. Tout s'exécute dans votre navigateur.

Comment lire un horodatage dans un UUID

  1. Collez l'UUID La forme standard de 36 caractères avec tirets, 8-4-4-4-12. Les majuscules comme les minuscules conviennent.
  2. Vérifiez la version et la variante Un v7 ne déclenche aucun avertissement. Tout le reste est signalé comme n'étant pas un v7.
  3. Lisez l'heure restituée Elle apparaît sous trois formes : millisecondes Unix, ISO 8601 en UTC, et l'heure locale de votre appareil.
  4. Consultez le tableau des bits Vous voyez ce qui occupe chaque plage de bits après l'horodatage de 48 bits : la version, la variante et la partie aléatoire.

Astuces pour en tirer le meilleur parti

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

Dans quelles situations cela sert

Retrouver quand un événement journalisé s'est produit

Même un journal dépourvu de colonne de date peut être daté si ses clés primaires sont des v7, ce qui aide à reconstituer l'enchaînement lors d'un incident.

Confirmer que les clés se trient bien par création

Saisissez tour à tour les UUID de plusieurs enregistrements et vérifiez que l'implémentation produit réellement des valeurs ordonnées dans le temps.

Décider d'adopter ou non le v7

Voir ce qu'on peut en extraire rend l'arbitrage concret : quiconque détient la valeur peut lire l'instant de création, ce qui devient un inconvénient dès que ce moment est sensible.

Distinguer les versions

Savoir à l'œil nu si un UUID reçu est un v4 ou un v7 est difficile ; ici la réponse est immédiate.

Le vocabulaire des UUID

UUID v7
La version normalisée par la RFC 9562, portant un horodatage Unix en millisecondes sur ses 48 premiers bits. Le tri chronologique est ce qui la distingue principalement du v4.
Version
Le chiffre à la treizième position hexadécimale, qui indique comment l'UUID a été produit. Pour un v7, il vaut 7.
Variante
Une valeur distincte décrivant l'agencement interne. Dans les UUID conformes à la RFC 9562, la dix-septième position vaut 8, 9, a ou b.
Millisecondes Unix
Millisecondes écoulées depuis le 1er janvier 1970 à 00:00:00 UTC. Quarante-huit bits suffisent jusqu'à l'an 10889.
Ce qui distingue le v4
Un v4 est pour l'essentiel entièrement aléatoire et **ne porte aucune information sur sa date de création.** Il ne se trie donc pas par ordre de création, mais en contrepartie personne ne peut en lire le moment d'origine.

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.
Tool-kun

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.