Извлечение времени из UUID
Извлечение и декодирование временных меток из идентификаторов UUID v1, v6 и v7
Ввод
Вывод
Результат
Нет значения
Документация
Как UUID хранят временны́е метки?
Несколько версий UUID встраивают временну́ю метку непосредственно в свою структуру. UUID v1, введённый в RFC 4122, кодирует 60-битную григорианскую временну́ю метку, представляющую 100-наносекундные интервалы, начиная с 15 октября 1582 года. UUID v6 переупорядочивает те же поля временно́й метки для улучшенной сортировки, а UUID v7, определённый в RFC 9562, хранит 48-битную временну́ю метку Unix epoch в миллисекундах. Эти встроенные временны́е метки позволяют восстановить точный момент генерации UUID — что полезно для отладки, аудита и криминалистического анализа.
Не каждый UUID содержит информацию о времени. Версии 3, 4 и 5 формируются на основе случайных данных или хэшей пространства имён, поэтому они не содержат восстанавливаемой временно́й метки. Версия 2 (DCE Security) включает временну́ю метку, но на практике используется редко.
Описание инструмента
Этот инструмент извлекает и декодирует временну́ю метку, встроенную в UUID на основе времени. Вставьте любой UUID и мгновенно увидите закодированные дату и время в нескольких форматах: ISO 8601, UTC, местное время, а также Unix-временны́е метки в секундах и миллисекундах. Инструмент автоматически определяет версию UUID и применяет соответствующий алгоритм декодирования.
Примеры
Входные данные UUID v1:
6ba7b810-9dad-11d1-80b4-00c04fd430c8 → 7 апреля 1998 года
Входные данные UUID v7:
018f3e88-5c00-7b3a-8512-2d4a3f8e9c01 → 3 мая 2024 года
Входные данные UUID v4 (без временно́й метки):
550e8400-e29b-41d4-a716-446655440000 → «Эта версия UUID не содержит временно́й метки»
Возможности
- Поддерживает UUID v1 (григорианская временна́я метка), v6 (переупорядоченная григорианская) и v7 (Unix epoch в миллисекундах)
- Отображает результаты в форматах ISO 8601, UTC, местного времени и Unix-временно́й метки
- Автоматически определяет версию UUID и выбирает правильный метод декодирования
- Проверяет формат UUID перед попыткой извлечения
- Выводит понятное сообщение для версий UUID, не содержащих временны́х меток
Принцип работы
Каждая версия UUID на основе времени хранит временну́ю метку по-своему:
- UUID v1 разбивает 60-битную григорианскую временну́ю метку на три поля:
time_low(биты 0–31),time_mid(биты 32–47) иtime_hi(биты 48–59). Временна́я метка отсчитывает 100-наносекундные интервалы, начиная с 15 октября 1582 года. - UUID v6 переупорядочивает поля временно́й метки v1 таким образом, чтобы наиболее значимые биты шли первыми, что обеспечивает естественную сортировку UUID по времени создания при использовании той же григорианской эпохи.
- UUID v7 использует более простой подход: первые 48 бит содержат стандартную Unix-временну́ю метку в миллисекундах, что делает извлечение простым и совместимым с современными системами.
Сценарии использования
- Отладка распределённых систем — определите точное время создания записи или события, декодировав присвоенный ей UUID
- Аудит и криминалистика — проверьте временны́е метки создания в базах данных, использующих UUID на основе времени в качестве первичных ключей
- Планирование миграции — анализируйте временны́е метки UUID для понимания распределения и возраста данных перед миграцией между системами