Chrome / WebKit → Unix タイムスタンプ コンバーター
Chrome / WebKit を Unix 時間に変換します。正確な式と大きな値への対応。出力は秒、ミリ秒、ISO 8601、可読形式。
1601-01-01 UTC からのマイクロ秒数
現在の時刻 — WebKit / Chrome タイムスタンプ—
Unix タイムスタンプ(秒)—
Chrome / WebKit のタイムスタンプとは?
Chromium と WebKit は、多くの時刻を 1601 年 1 月 1 日 UTC からのマイクロ秒数として保存します。これらの 17 桁の値は History、Cookies、Login Data の SQLite データベースで見られ、ブラウザフォレンジックやデータエクスポートのデバッグでよく登場する形式です。
- エポック:1601-01-01 00:00:00 UTC(Windows FILETIME と同じ基準)
- 分解能:マイクロ秒(毎秒 1,000,000)
- 現在の値は 1.3 × 10^16 前後の 17 桁の数値
- 見られる場所:Chrome/Edge/Brave の History(visits.visit_time)、Cookies(creation_utc)、キャッシュエントリ
WebKit タイムスタンプを Unix 時間に変換する方法
WebKit タイムスタンプは 1601 年からのマイクロ秒です。1,000,000 で割って 1601 年からの秒を求め、Unix エポックまでの 11,644,473,600 秒の差を引きます。
- Unix seconds = WebKit / 1000000 − 11644473600
- Unix milliseconds = WebKit / 1000 − 11644473600000
- 例:13344473600000000 → 1700000000 → 2023-11-14 22:13:20 UTC
- SQLite: datetime(visit_time/1000000 - 11644473600, "unixepoch")
エッジケース
WebKit タイムスタンプが 0 の場合は 1601-01-01 を意味し、通常は実際の訪問ではなく null または未設定の値を表します。マイクロ秒精度は JavaScript の安全な整数を超えるため、このコンバーターは BigInt で解析し、ミリ秒までの完全な精度を保ちます。
- 1601 年からのマイクロ秒形式を、単なる Unix マイクロ秒と混同しないこと — 1601→1970 のオフセット分だけ異なる
- WebKit の時刻はすべて UTC。変換後に表示タイムゾーンを選ぶ
- 一部の Chrome のフィールド(例:last_visit_time = 0)は「なし」のセンチネル
関連するタイムスタンプ形式コンバーター
WebKit タイムスタンプが実際に現れる場所
フォレンジックや分析のチームは、特定の Chromium アーティファクトでこの形式に出会います:
- Chrome/Edge/Brave の History データベース — visits.visit_time、urls.last_visit_time
- Cookies データベース — creation_utc、expires_utc、last_access_utc
- Login Data SQLite — 保存された資格情報の date_created
- Hindsight、ChromeHistoryView、DB Browser for SQLite などのツールは 1601 年からのマイクロ秒を想定している
- キャッシュやローカルストレージは別の形式を使うことが多い — これと決めつける前にテーブルごとに確認すること
FAQ
- Chrome はタイムスタンプにどのエポックを使うのか?
- Chromium/WebKit のタイムスタンプは 1601 年 1 月 1 日 00:00:00 UTC からのマイクロ秒を数えます — Windows FILETIME と同じエポックですが、100 ナノ秒ティックではなくマイクロ秒です。
- Chrome の履歴タイムスタンプを変換するには?
- 値を 1,000,000 で割り、11,644,473,600 を引いて秒単位の Unix タイムスタンプを得てから、日付として整形します。
- なぜ Chrome のタイムスタンプは 17 桁なのか?
- 1601 年からのマイクロ秒(100 万分の 1 秒)を数えるためで、400 年以上のマイクロ秒を積み上げると 17 桁の数になります。