Extract the Timestamp Hidden in Any ULID
A ULID looks like a random string, but its first 10 characters are a 48-bit millisecond timestamp in Crockford Base32. When a log line, a database row or an error report gives you nothing but a ULID, that timestamp is often the only way to know when the record was actually created.
- ✓You are debugging and need to know when a record was created, but the table has no created_at column.
- ✓Doing the Base32 math by hand (or in a REPL) for the tenth time this week is nobody's idea of fun.
- ✓Generic ULID generators decode one ID at a time — your log has four hundred of them.
- ✓Our extractor scans whole pasted logs and decodes every ULID it finds, with position and line number.
FAQ
How is the time stored in a ULID?
The first 10 of the 26 characters encode milliseconds since the Unix epoch in Crockford Base32 (alphabet 0-9 plus A-Z without I, L, O, U). Decode those 10 characters and you get the exact creation millisecond.
Is the decoded time exact?
Yes — down to the millisecond, assuming the ID was generated by a spec-compliant ULID library. It tells you when the ID was minted, which is normally the moment the record was created.
Is my log uploaded anywhere?
No. The scan and the decoding run entirely in your browser; nothing leaves your device.