ULID Generator(ULID / Crockford Base32 / Monotonic 対応)

このツールについて

ULID(Universally Unique Lexicographically Sortable Identifier)を生成するツールである。 ULID は 48bit のエポック時刻(ミリ秒)80bit の乱数から構成され、Crockford Base320123456789ABCDEFGHJKMNPQRSTVWXYZ)で 26 文字にエンコードされる。 本ツールでは 時刻ソース(Local / IANA / 固定オフセット)と 使用時刻(現在 or 指定日時)を選択でき、 プレビューに表示される UTC とローカルが 生成に用いられる時刻と完全一致する。 ULID の仕様上、タイムスタンプは UTC ミリ秒であり、タイムゾーンは表示ロジックにすぎない。

時刻確認

生成・出力

使い方

  1. 「時刻確認」で Local / IANA / 固定オフセット を選ぶ(既定のままで基本問題なし)。
  2. 「使用時刻」で 現在時刻指定日時 を選ぶ。指定する場合は YYYY-MM-DDTHH:MM[:SS[.mmm]] を入力(プレビューと生成に使用)。
  3. 「生成数」を指定し、必要なら「単調生成」を切り替えて「生成」。出力欄に改行区切りで表示される。

補足

  • プレビューは現在のUTC時刻と、選択ソース基準のローカル時刻を表示する。生成ではこのプレビューの時刻がそのまま使われる
  • IANAタイムゾーンは夏時間(DST)を考慮してオフセットを決定する(反復で安定化)。
  • 連続クリックでも毎回ランダムソースを初期化して「同一ミリ秒・同一設定でも新規列」を得る。

注意事項

  • ULID のタイムスタンプは「UTCエポックms」であり、タイムゾーンは表示の問題である。現在時刻で生成する場合、タイムゾーンを切り替えてもタイムスタンプ自体(上位ビット)は同一になるのが仕様である。
  • 指定日時を選んだ場合のみ、入力した壁時計時刻(+選択ソースのTZ/オフセット)に対応するUTCに変換してタイムスタンプへ反映する。
  • 単調生成 ON: 同一ミリ秒内で乱数部が+1になる(モノトニックULID)。OFF: 見た目が完全にバラける。

ULIDとは?

ULID は 48bit のミリ秒タイムスタンプ80bit の乱数で構成され、ASCII順にソートすると時間順になる ID である。
UUID v7 と同様に「時系列で整列しやすい」という利点があり、Crockford Base32 により URL/ファイル名に貼り付けやすい(26文字・大文字のみ、視認性向上のため I/L/O/U を除外)。