Jak UUID przechowują znaczniki czasu?

Kilka wersji UUID osadza znacznik czasu bezpośrednio w swojej strukturze. UUID v1, wprowadzony w RFC 4122, koduje 60-bitowy znacznik czasu gregoriańskiego reprezentujący interwały 100-nanosekund od 15 października 1582 roku. UUID v6 przestawia te same pola znacznika czasu dla lepszej sortowalności, a UUID v7, zdefiniowany w RFC 9562, przechowuje 48-bitowy znacznik czasu Unix epoch w milisekundach. Te osadzone znaczniki czasu umożliwiają odtworzenie dokładnego momentu wygenerowania UUID — przydatne przy debugowaniu, audytowaniu i analizie forensycznej.

Nie każdy UUID zawiera informacje o czasie. Wersje 3, 4 i 5 są wyprowadzane z losowych danych lub skrótów przestrzeni nazw, dlatego nie zawierają żadnego możliwego do odzyskania znacznika czasu. Wersja 2 (DCE Security) zawiera znacznik czasu, ale w praktyce jest rzadko stosowana.

Opis narzędzia

To narzędzie wyodrębnia i dekoduje znacznik czasu osadzony w UUID opartych na czasie. Wklej dowolny UUID i natychmiast zobacz zakodowaną datę i godzinę w wielu formatach: ISO 8601, UTC, czas lokalny oraz znaczniki czasu Unix w sekundach i milisekundach. Narzędzie automatycznie wykrywa wersję UUID i stosuje właściwy algorytm dekodowania.

Przykłady

Dane wejściowe UUID v1:

6ba7b810-9dad-11d1-80b4-00c04fd430c8 → 7 kwietnia 1998

Dane wejściowe UUID v7:

018f3e88-5c00-7b3a-8512-2d4a3f8e9c01 → 3 maja 2024

Dane wejściowe UUID v4 (brak znacznika czasu):

550e8400-e29b-41d4-a716-446655440000 → „Ta wersja UUID nie zawiera znacznika czasu"

Funkcje

  • Obsługuje UUID v1 (znacznik czasu gregoriański), v6 (przestawiony gregoriański) i v7 (Unix epoch w milisekundach)
  • Wyświetla wyniki w formatach ISO 8601, UTC, czas lokalny oraz znacznik czasu Unix
  • Automatycznie wykrywa wersję UUID i wybiera właściwą metodę dekodowania
  • Weryfikuje format UUID przed próbą wyodrębnienia danych
  • Wyświetla czytelny komunikat dla wersji UUID, które nie zawierają znaczników czasu

Jak to działa

Każda wersja UUID oparta na czasie przechowuje swój znacznik czasu w inny sposób:

  • UUID v1 dzieli 60-bitowy znacznik czasu gregoriańskiego na trzy pola: time_low (bity 0–31), time_mid (bity 32–47) i time_hi (bity 48–59). Znacznik czasu zlicza interwały 100-nanosekund od 15 października 1582 roku.
  • UUID v6 zmienia kolejność pól znacznika czasu z v1 tak, aby najbardziej znaczące bity były na początku, co sprawia, że UUID są naturalnie sortowalne według czasu utworzenia przy użyciu tej samej epoki gregoriańskiej.
  • UUID v7 stosuje prostsze podejście: pierwsze 48 bitów przechowuje standardowy znacznik czasu Unix w milisekundach, co sprawia, że wyodrębnianie jest proste i zgodne z nowoczesnymi systemami.

Przypadki użycia

  • Debugowanie systemów rozproszonych — określenie dokładnego momentu utworzenia rekordu lub zdarzenia poprzez dekodowanie przypisanego do niego UUID
  • Audyt i analiza forensyczna — weryfikacja znaczników czasu utworzenia w bazach danych, które używają UUID opartych na czasie jako kluczy głównych
  • Planowanie migracji — analiza znaczników czasu UUID w celu zrozumienia rozkładu i wieku danych przed migracją między systemami