UUID タイムスタンプエクストラクター
UUID v1、v6、v7 識別子からタイムスタンプを抽出してデコードします
入力
出力
結果
値なし
Readme
UUIDはタイムスタンプをどのように格納するか?
いくつかのUUIDバージョンは、タイムスタンプを構造内に直接埋め込んでいます。RFC 4122で導入されたUUID v1は、1582年10月15日からの100ナノ秒間隔を表す60ビットのグレゴリオ暦タイムスタンプをエンコードします。UUID v6は同じタイムスタンプフィールドを並べ替えてソート性を向上させており、RFC 9562で定義されたUUID v7は48ビットのUnixエポックタイムスタンプをミリ秒単位で格納します。これらの埋め込みタイムスタンプにより、UUIDが生成された正確な瞬間を復元することが可能になります。これはデバッグ、監査、フォレンジック分析に役立ちます。
すべてのUUIDが時刻情報を持つわけではありません。バージョン3、4、5はランダムデータまたは名前空間ハッシュから生成されるため、復元可能なタイムスタンプは含まれていません。バージョン2(DCE Security)はタイムスタンプを含みますが、実際にはほとんど使用されません。
ツールの説明
このツールは、時刻ベースのUUIDに埋め込まれたタイムスタンプを抽出・デコードします。UUIDを貼り付けるだけで、エンコードされた日時をISO 8601、UTC、ローカル時刻、秒およびミリ秒単位のUnixタイムスタンプなど複数のフォーマットで即座に確認できます。ツールはUUIDのバージョンを自動検出し、適切なデコードアルゴリズムを適用します。
使用例
UUID v1の入力:
6ba7b810-9dad-11d1-80b4-00c04fd430c8 → 1998年4月7日
UUID v7の入力:
018f3e88-5c00-7b3a-8512-2d4a3f8e9c01 → 2024年5月3日
UUID v4の入力(タイムスタンプなし):
550e8400-e29b-41d4-a716-446655440000 → 「このUUIDバージョンにはタイムスタンプが含まれていません」
機能
- UUID v1(グレゴリオ暦タイムスタンプ)、v6(グレゴリオ暦の並べ替え)、v7(Unixエポックミリ秒)をサポート
- ISO 8601、UTC、ローカル時刻、Unixタイムスタンプ形式で結果を表示
- UUIDのバージョンを自動検出し、適切なデコード方法を選択
- 抽出を試みる前にUUIDフォーマットを検証
- タイムスタンプを含まないUUIDバージョンに対して明確なメッセージを表示
仕組み
時刻ベースの各UUIDバージョンは、タイムスタンプを異なる方法で格納します:
- UUID v1 は60ビットのグレゴリオ暦タイムスタンプを3つのフィールドに分割します:
time_low(ビット0〜31)、time_mid(ビット32〜47)、time_hi(ビット48〜59)。タイムスタンプは1582年10月15日からの100ナノ秒間隔をカウントします。 - UUID v6 はv1のタイムスタンプフィールドを並べ替え、最上位ビットを先頭に配置することで、同じグレゴリオ暦エポックを使用しながら、UUIDを作成時刻順に自然にソートできるようにします。
- UUID v7 はよりシンプルなアプローチを採用しており、先頭48ビットにミリ秒単位の標準Unixタイムスタンプを格納することで、抽出が簡単になり、現代のシステムとの互換性も確保されています。
ユースケース
- 分散システムのデバッグ — レコードやイベントに割り当てられたUUIDをデコードすることで、それが作成された正確な時刻を特定する
- 監査とフォレンジック — 時刻ベースのUUIDを主キーとして使用するデータベースの作成タイムスタンプを検証する
- 移行計画 — システム間の移行前に、UUIDのタイムスタンプを分析してデータの分布と経過時間を把握する