RFC-3339 is the timestamp format you meet most often in modern APIs: it is the strict, unambiguous profile of ISO-8601 that JSON, logging systems and many Internet protocols standardise on. A compliant value such as 2023-11-14T22:13:20Z always carries a full date, a full time, and an explicit timezone. This converter validates RFC-3339 strings and translates them to Unix time and back, locally in your browser.
How it works
The tool first checks the string against an RFC-3339 grammar that requires every mandatory part:
date-fullyear "-" date-month "-" date-mday "T"/" " hh ":" mm ":" ss [".".frac] (Z | ±hh:mm)
If the structure is valid, it hands the value to Date.parse to compute the absolute instant in milliseconds, then derives:
const ms = Date.parse(input);
const seconds = Math.floor(ms / 1000);
const iso = new Date(ms).toISOString(); // canonical UTC
To build a compliant RFC-3339 string from any date, the tool parses your input and re-emits it as a UTC ...Z timestamp via toISOString(), which is itself valid RFC-3339.
Example
Decoding 2023-11-14T22:13:20Z gives:
- Epoch seconds:
1700000000 - Epoch milliseconds:
1700000000000 - Canonical UTC:
2023-11-14T22:13:20.000Z
The offset form 2023-11-14T17:13:20-05:00 describes the same instant — local time five hours behind UTC — and converts to the identical epoch value.
Tips and notes
- RFC-3339 always requires a timezone; a string without one is rejected here as non-compliant.
Zand+00:00are equivalent and both mean UTC.- For interoperability, emit UTC (
Z) timestamps; reserve numeric offsets for when local wall-clock context genuinely matters.