固定時刻の例で比較する
生成モードのサンプルは固定ミリ秒を設定するだけで、IDはまだ作りません。1700000000を入れても秒とは解釈せず、そのままミリ秒として扱います。
- 現在時刻の取得はバッチにつき一度です。
識別子
新しいIDを生成するか、既存の値を1行ずつ確認します。生成は手動、デコードは自動更新を選べます。
空欄なら実行時の現在時刻を一度だけ取得し、バッチ全体に使います。指定する場合は0〜281474976710655の整数です。秒やISO日時の自動判定はしません。
処理はこのブラウザー内で完結し、入力をサーバーへ送信しません。
有効時は最初の80ビットをランダムに決め、以降は1ずつ加算します。無効時は毎回独立した乱数を使います。別の生成操作との順序は保証しません。
生成数は1〜1,000件。デコードは1,000物理行、100,000個のUTF-16コード単位まで。出力には全件を含みます。
条件を選んで実行してください。
ログにあるIDの順序が想定と違うときは、文字列の長さよりも内蔵時刻と末尾を調べると原因を絞れます。ULIDジェネレーターなら、同じミリ秒に属する値と別の時刻の値を分けて確認できます。
テストデータの時刻を固定しても、ランダム部分は固定されません。既存の一覧を並べ替える場合も元の入力は動かさず、各レコードの行番号から比較対象をたどれます。
ULIDジェネレーターは先頭10文字と末尾16文字を別々に表示し、Unixミリ秒とUTC時刻を併記します。日付表示だけでは見落としやすい、秒とミリ秒の取り違えを検証できます。
結果にはsourceLineが残るため、位置が変わった値を入力と照合できます。同じ値が複数あっても削除せず、元の出現位置ごとにレコードを保持します。
生成モードのサンプルは固定ミリ秒を設定するだけで、IDはまだ作りません。1700000000を入れても秒とは解釈せず、そのままミリ秒として扱います。
単調モードでは同じバッチの末尾を加算します。無効にすると同じミリ秒でも末尾が毎回ランダムになり、辞書順と生成順が一致しない場合があります。
デコードのサンプルは意図的に順序を入れ替えてあります。ASCII昇順を選び、sourceLineを比べてください。自動更新は350ミリ秒待ち、無効時はボタンかCtrl/Cmd+Enterで実行します。
1〜1,000件の大文字IDを一括生成できます。固定時刻が決めるのは接頭部だけです。末尾の乱数から始め、単調モードなら残りを連続した値にします。
タイムスタンプ、UTCのISO表記、時刻部分、ランダム部分とその16進表記を確認できます。ランダム部分からユーザー名や端末情報を取り出す機能はありません。
不正な文字、桁数、上限超過を元の行と列で示します。1行でも不正なら全体を失敗扱いにし、エラー行を省いた結果を誤って出力することを防ぎます。
表示は先頭50件から始まり、100件ずつ追加できます。生成のTXT・JSON、デコードのJSONには、まだ展開していないレコードも含む全件が入ります。
先頭10文字からUnixミリ秒を復元できます。ただし、その値は生成時に指定された時刻です。時計のずれや任意の時刻設定があり得るので、実際のレコード作成時刻の証拠にはなりません。
同じミリ秒でも後の値が辞書順で大きくなる性質です。このULIDジェネレーターでは最初の末尾を乱数で決め、同じバッチの後続値に1ずつ加算します。別のクリックの結果との順序は保証しません。
Crockford Base32の数字と英字を使い、I、L、O、Uを除きます。26文字のうち先頭10文字が時刻、後半16文字がランダム部分です。本ツールは別名文字の補正を行いません。
どちらもミリ秒時刻を使うIDですが、UUID v7はUUIDの形式や対応ライブラリと統合したい場合に適しています。ULIDは26文字のBase32表記を利用できます。データベースや既存システムの受け付ける型に合わせて選んでください。
ULIDとしては区別しません。このページは合法な小文字入力を受け付け、結果を大文字へ統一してからASCII順で比較します。ただし、接続先のデータベースやアプリの制約までは変更できません。
想定と違う結果が出ましたか?