本文へ移動
QKQuickKitEN
識別子・認証LOCALブラウザ内で処理

MongoDB ObjectId タイムスタンプデコーダー

12 バイトの MongoDB ObjectId から作成タイムスタンプを読み取り、残りのバイトは生の 16 進数として表示します。すべてブラウザ内で処理。

入力と主要な処理をブラウザ内で行い、その入力内容をQuickKitサーバーへ送信しない設計です。

デコード結果

デコード結果
作成タイムスタンプ(UTC)
タイムスタンプ(Unix 秒)
タイムスタンプ(Unix ミリ秒)
タイムスタンプバイト(16 進)
5〜9 バイト目(16 進)
カウンターバイト(16 進)
カウンター(10 進)
正規化した ObjectId
仕組みと使い方

MongoDB の ObjectId は 12 バイトで、24 桁の 16 進数として表示されます。先頭 4 バイトは Unix エポックからの秒数(ビッグエンディアン)で、ドキュメントの作成時刻です。これは `ObjectId.getTimestamp()` が返す値と同じです。このツールはそのタイムスタンプをデコードし、残りのバイトは生の 16 進数としてのみ表示します。現行の ObjectId 形式(MongoDB 3.4 以降)では 5〜9 バイト目はマシン・プロセスごとのランダム値、10〜12 バイト目はビッグエンディアンのカウンターです。3.4 より前は 3 バイトのマシン識別子・2 バイトのプロセス ID・3 バイトのカウンターでした。この中間部分は互換性がないため、5〜9 バイト目は意味ではなく位置で表示し、ホスト・プロセス・ユーザーには結び付けません。裸の ID または `ObjectId("…")` 形式を貼り付けてください。カウンターバイトからプロセスをまたぐ挿入順は復元できず、秒単位のタイムスタンプは正確な挿入時刻ではありません。