UUID Decoder
Paste a UUID or GUID to see what its bits say: version, variant, canonical form and, where the version defines one, the timestamp.
What Can Be Decoded From Each Version
| Version | Decodable fields | Not decodable |
|---|---|---|
| v1 | Gregorian timestamp (100 ns), clock sequence, node | – |
| v3 / v5 | Version and variant only | The original name and namespace |
| v4 | Version and variant only | Everything else is random |
| v6 | Gregorian timestamp (100 ns), clock sequence, node | – |
| v7 | Unix timestamp (milliseconds) | Random bits and any counter |
| v8 | Version and variant only | Layout is vendor-defined |
These follow the layouts in RFC 9562 §5. The decoder’s examples are the RFC’s own test vectors (RFC 9562 Appendix A (opens in a new tab)), and the tool’s automated tests check that it reads them exactly as the RFC describes.
How UUID Timestamps Work
v1 and v6
A 60-bit count of 100-nanosecond intervals since 15 October 1582, the start of the Gregorian calendar. v1 splits it into low, middle and high parts; v6 stores the same value most-significant first so it sorts correctly (RFC 9562 §5.1, §5.6 (opens in a new tab)).
v7
A 48-bit count of milliseconds since 1 January 1970 UTC, the familiar Unix epoch (RFC 9562 §5.7 (opens in a new tab)). PostgreSQL’s uuid_extract_timestamp() and Python’s UUID.time read the same field (PostgreSQL docs (opens in a new tab), Python docs (opens in a new tab)).
In every case the decoded time is whatever the generator’s clock said. RFC 9562 explicitly allows implementations to adjust or fuzz timestamps (RFC 9562 §6.1 (opens in a new tab)), so treat decoded times as approximate.
Should Applications Decode UUIDs?
Usually not. RFC 9562 advises treating UUIDs as opaque where possible and parsing them only when necessary (RFC 9562 §6.12 (opens in a new tab)). Decoding is great for debugging and investigation; for business logic such as “created at”, store a proper timestamp column. To check many IDs at once, use the UUID validator; to create new ones, the GUID generator, or the v7 generator for time-ordered IDs.
Frequently Asked Questions
What can a UUID decoder show?
The variant and version of any UUID, its canonical form, and for time-based versions (v1, v6 and v7) the embedded timestamp. For v1 and v6 it also shows the clock sequence and node fields.
Can I get a date from a UUID v4?
No. Apart from the version and variant bits, a v4 UUID is random. There is no timestamp or other information to extract.
Can I recover the name from a UUID v3 or v5?
No. They are derived from a hash of the namespace and name, and the hash can’t be reversed. You can only check a guess by generating the UUID from it and comparing.
Does the decoded timestamp show when a record was created?
It shows the clock value the generator used. That is usually close to when the ID was made, but it isn’t proof of when a record was created or stored.
What does it mean if the v1 node looks random?
If the multicast bit of the node is set, the generator used a random node rather than a network card’s MAC address, as RFC 9562 recommends for privacy.
Related UUID tools
- UUID ValidatorCheck the format, version and variant of one or many UUIDs.
- Online GUID GeneratorGenerate UUID v4, v7, v1, v3, v5 and v6 identifiers in bulk, with copy and download.
- UUID v7 GeneratorTime-ordered version 7 UUIDs with their embedded timestamps.
- UUID v4 GeneratorRandom version 4 UUIDs, one or a thousand at a time.
Sources
- RFC 9562: Universally Unique IDentifiers (UUIDs) – IETF (May 2024; obsoletes RFC 4122) (opens in a new tab)
- uuid: UUID objects according to RFC 9562 – Python documentation (opens in a new tab)
- UUID Functions (PostgreSQL 18) – PostgreSQL documentation (opens in a new tab)