Перейти к содержанию

Декодер Snowflake ID

Разложит 64-битный Snowflake ID на его компоненты: временную метку, машинный идентификатор и номер последовательности.

Входные данные
Выходные данные

Декодер Snowflake ID

Вставьте один или несколько Snowflake ID — 64-битные идентификаторы, используемые Twitter, Discord, Instagram, Mastodon и множеством внутренних систем, созданных по их образцу, — и этот инструмент разложит каждый ID на его компоненты: временную метку, машинные идентификаторы и номер последовательности. Каждый сервис добавляет Snowflake ID к данным (твит, сообщение Discord, строка базы данных), чтобы ID сортировались хронологически и могли быть созданы множеством машин одновременно без этапа координации.

Выберите эпоху, соответствующую вашему источнику, под заголовком "Эпоха / формат": Twitter и Discord используют одинаковый формат битов, но разные начальные даты, Instagram распределяет биты иначе (более широкое поле осколка, без отдельного ID работника), а Mastodon полностью пропускает поля машин в пользу простой временной метки в миллисекундах плюс последовательность. Выберите "Пользовательская" и укажите собственную эпоху в Unix миллисекундах для любой другой Snowflake-подобной схемы. Опция "Показать локальное время" добавляет часовой пояс вашего устройства рядом с временной меткой UTC, а "Показать разбор в двоичной системе" выводит необработанные группы битов, чтобы вы могли видеть точно, какие биты содержат какое поле.

Переключите "Направление" на "Дата → граничный ID" для выполнения обратной операции: введите дату (простой формат 2026-08-11 или полную временную метку ISO 8601) и получите наименьший и наибольший Snowflake ID, который мог существовать в этот миллисекунду — пару, которую большинство API ожидают в качестве курсоров "до"/"после" при пагинации по ID вместо номера страницы. Каждая строка обрабатывается независимо, поэтому вы можете декодировать весь журнал ID или создать границы для целого списка дат за один проход. Инструмент проверяет, что каждое значение соответствует 64-битному Snowflake, и сообщает о неверных или выходящих за границы строках вместо их молчаливого пропуска.

Всё выполняется локально в вашем браузере — вставленные ID, даты и любая пользовательская эпоха никогда не покидают ваше устройство, поэтому это безопасно использовать с production-данными. Скопируйте результат, загрузите его как файл .txt или отправьте прямо на вход другого инструмента для продолжения работы.

FAQ

Что такое Snowflake ID?
64-битное число, которое объединяет временную метку в миллисекундах, один или два идентификатора машины и счётчик последовательности за миллисекунду в одно отсортированное целое число. Twitter представил эту схему; Discord, Instagram, Mastodon и множество внутренних систем используют её варианты.
Почему для Twitter и Discord ID нужны разные настройки?
Они используют одинаковый формат битов, но считают миллисекунды с разных начальных точек — эпоха Twitter начинается в ноябре 2010 года, эпоха Discord в январе 2015 года. Выбор неправильного варианта дает временную метку, которая может отличаться на годы.
В чём разница между декодированием и направлением "Дата → граничный ID"?
Декодирование читает существующий ID и разбирает его на составные части. Направление граничного ID делает противоположное: по заданной дате оно создаёт наименьший и наибольший ID, который та временная метка могла бы создать, что многие API используют в качестве курсоров пагинации.
Почему Instagram показывает осколок, но не отдельное поле работника?
Формат Instagram выделяет больше битов для одного идентификатора осколка вместо разделения ID центра обработки данных и ID работника, как это делают Twitter и Discord, — это преднамеренное различие в дизайне, а не пробел в декодировании.
Загружаются ли мои данные куда-нибудь?
Нет. Каждый ID, дата и пользовательская эпоха, которые вы введёте, обрабатываются полностью в вашем браузере и никогда не отправляются на сервер.