Chrome / WebKit 轉 Unix 時間戳轉換器
把 Chrome / WebKit 轉換為 Unix 時間。精確公式與大數支援。輸出:秒、毫秒、ISO 8601 與可讀格式。
自 1601-01-01 UTC 以來的微秒数
目前時間 — WebKit / Chrome 時間戳—
Unix 時間戳(秒)—
什麼是 Chrome / WebKit 時間戳記?
Chromium 和 WebKit 將許多時間儲存為自 1601 年 1 月 1 日 UTC 以來的微秒數。你會在 History、Cookies 和 Login Data 這些 SQLite 資料庫中遇到這些 17 位的值,這使該格式在瀏覽器鑑識和資料匯出除錯中很常見。
- 紀元: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,通常代表空值或未設定值,而非真實造訪。微秒精度超過 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 奈秒 tick。
- 如何轉換 Chrome 歷史記錄時間戳記?
- 把該值除以 1,000,000 再減去 11,644,473,600,得到以秒為單位的 Unix 時間戳記,然後格式化為日期。
- 為什麼 Chrome 時間戳記是 17 位?
- 因為它計數自 1601 年起的微秒(百萬分之一秒);累積 400 多年的微秒會產生一個 17 位的數字。