ULID Generator(ULID / Crockford Base32 / Monotonic 対応)
このツールについて
ULID(Universally Unique Lexicographically Sortable Identifier)を生成するツールである。
ULID は 48bit のエポック時刻(ミリ秒)と80bit の乱数から構成され、Crockford Base32(0123456789ABCDEFGHJKMNPQRSTVWXYZ
)で 26 文字にエンコードされる。
本ツールでは 時刻ソース(Local / IANA / 固定オフセット)と 使用時刻(現在 or 指定日時)を選択でき、
プレビューに表示される UTC とローカルが 生成に用いられる時刻と完全一致する。
ULID の仕様上、タイムスタンプは UTC ミリ秒であり、タイムゾーンは表示ロジックにすぎない。
時刻確認
生成・出力
使い方
- 「時刻確認」で Local / IANA / 固定オフセット を選ぶ(既定のままで基本問題なし)。
- 「使用時刻」で 現在時刻 か 指定日時 を選ぶ。指定する場合は
YYYY-MM-DDTHH:MM[:SS[.mmm]]
を入力(プレビューと生成に使用)。 - 「生成数」を指定し、必要なら「単調生成」を切り替えて「生成」。出力欄に改行区切りで表示される。
補足
- プレビューは現在の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
を除外)。