CURRENT EPOCH · EPOCHTIME.TOOLS · A PRECISION INSTRUMENT FOR TIME
Converter Batch Difference Blog
Languages
JavaScript Python TypeScript Go Rust Java PHP SQL Bash
Specialty
LDAP Timestamp .NET Ticks Chrome/WebKit Cocoa / Core Data Discord Timestamp Excel OADate Unix Hex
Standards
ISO 8601 Guide Year 2038 NTP Timestamp GPS Time Julian Day
01 Input
Paste a Chrome/WebKit timestamp (microseconds) or a date string
Chrome epoch is 1601-01-01 UTC, in microseconds. Offset from Unix epoch: 11644473600 seconds.
02 Output
Chrome timestamp (μs)
Unix seconds
Unix milliseconds
ISO 8601 (UTC)
Human-readable

What is a Chrome/WebKit timestamp?

Chromium (and therefore Chrome, Edge, Brave, Opera) and WebKit (Safari) use a timestamp format based on microseconds since 1601-01-01 00:00:00 UTC. This is the same epoch as Windows FILETIME and LDAP, but with different units.

You'll most commonly see this format when:

Conversion formula

Chrome → Unix seconds

unix_seconds = (chrome_value / 1_000_000) - 11_644_473_600

Unix seconds → Chrome

chrome_value = (unix_seconds + 11_644_473_600) * 1_000_000

Reading from Chrome's History database

If you're inspecting ~/Library/Application Support/Google/Chrome/Default/History (macOS) or %LOCALAPPDATA%\Google\Chrome\User Data\Default\History (Windows), the timestamp columns use this format:

-- SQLite query to convert Chrome timestamps to readable dates
SELECT
  url,
  title,
  datetime(last_visit_time / 1000000 - 11644473600, 'unixepoch') as visited
FROM urls
ORDER BY last_visit_time DESC
LIMIT 20;

Code examples

Python

from datetime import datetime, timezone

CHROME_OFFSET_SEC = 11_644_473_600

def chrome_to_datetime(chrome_us: int) -> datetime:
    unix_sec = (chrome_us / 1_000_000) - CHROME_OFFSET_SEC
    return datetime.fromtimestamp(unix_sec, tz=timezone.utc)

def datetime_to_chrome(dt: datetime) -> int:
    return int((dt.timestamp() + CHROME_OFFSET_SEC) * 1_000_000)

JavaScript

const CHROME_OFFSET = 11644473600;

function chromeToDate(chrome_us) {
  const sec = chrome_us / 1_000_000 - CHROME_OFFSET;
  return new Date(sec * 1000);
}

function dateToChrome(date) {
  return (Math.floor(date.getTime() / 1000) + CHROME_OFFSET) * 1_000_000;
}