Compare Timestamps
Paste JSON, MongoDB data, or raw timestamps — auto-detect every value, label it, and compare side by side with time gaps, chronological order, and a shareable visual timeline.
Comparing database records with timestamps
Pull up any database record and you'll find timestamps scattered across multiple fields — a createdAt when the row was inserted, an updatedAt after the last edit, a processedAt when the job ran. Two records side by side means six numbers to convert.
Each one is a plain number. Converting them individually means losing track of which number belongs to which field by the time you've converted the third one.
Paste your record and give it a label. Every timestamp lands in its own named row — and that label travels with the value through every column, every sort, and every diff. When you're looking at Order A: closedAt and Order B: closedAt side by side, you always know exactly which number belongs to which record.
Pasting JSON
Open the paste panel and drop in any JSON object. The tool scans every field and picks out values that look like Unix timestamps (9–13 digit numbers) or ISO 8601 date strings. Non-timestamp fields — IDs, counts, booleans — are skipped. Nested objects are traversed, with nested keys shown as dot-paths like metadata.updatedAt.
If you need to compare two objects with matching field names, use the Prefix field before each paste. The prefix is prepended to every row label exactly as typed — so entering Order A: turns claimedAt into Order A: claimedAt — you choose the punctuation or separator.
The Δ column and timeline
The Δ (delta) column shows the time elapsed between a row and the one above it. It is most useful after sorting by time: Δ then reads as the interval between consecutive events, answering questions like “how long did the claim take?” or “was the order closed within the SLA window?”.
The Timeline view always shows events in time order regardless of how the rows are arranged, with the total span from first to last event shown at the end.
Columns and the timezone picker
Columns are the same set of output formats available in the main Epoch Converter. Any column you have hidden there is already hidden here — your preferences are shared. Hover a column header to hide it; click “show all” to restore. The timezone picker controls the “Local time” and “RFC 3339” columns for all rows.
Frequently asked questions
Why would I compare timestamps instead of converting them one by one?
When you're debugging a record — say, a database document with createdAt, claimedAt, and closedAt fields — converting one at a time forces you to remember what each number meant. Labeling all of them together lets you see the full timeline at a glance and understand the gaps between events without switching context.
How do I paste a JSON object?
Open the "Paste JSON or key:value" panel, paste your object (e.g. {"createdAt":1782558101,"closedAt":1782569300}), and click Parse. The tool walks the object tree, detects all numeric Unix timestamps and ISO 8601 strings, and adds them as labeled rows automatically.
What counts as a detectable timestamp in JSON?
Numeric values with 9–13 digits that fall between the years 2000 and 2100 are treated as Unix timestamps (seconds or milliseconds, auto-detected by digit count). ISO 8601 strings like "2026-07-01T10:22:00Z" are also detected. Other numbers — IDs, counts, percentages — are ignored.
I have two JSON objects with the same field names. How do I tell them apart?
Use the Prefix field in the paste panel before each paste. Enter "Mission A: " for the first object and "Mission B: " for the second (the prefix is prepended exactly as typed, so include your own punctuation or separator). Rows will be labeled "Mission A: createdAt" and "Mission B: createdAt" so you never lose context.
What does the Δ column show?
The Δ (delta) column shows the time elapsed between a row and the row directly above it in the current display order. It updates when you drag rows, sort by time, or add new rows. Use "Sort by time" to put rows in chronological order — then Δ shows the gaps between consecutive events.
Can I hide columns I don't need?
Yes. Hover any column header to reveal the hide button (eye icon). Hidden columns are saved to localStorage and shared with the main Epoch Converter — if you've already hidden .NET Ticks there, it stays hidden here too. Use "show all" to restore everything.
Is my data sent anywhere?
No. All parsing and formatting runs in your browser. Timestamps are only included in the page URL if you share it — they are never sent to a server.
Can I share a comparison with a colleague?
Yes. The URL updates as you type (labels, values, timezone, view). Copy it from the address bar to share — your colleague opens the same rows, labels, and view.