formatRfc2822
Signature
Section titled “Signature”formatRfc2822(value: string): stringFormat a zoned ISO 8601 datetime string as an RFC 5322 (RFC 2822) date-time — the fixed grammar email Date: headers require.
- Fixed grammar, not a display format. RFC 5322 mandates English weekday/month abbreviations and a numeric
+HHMM/-HHMMoffset regardless of caller locale — there is no locale-appropriate alternative ordering to lose, so this does not conflict with GMT’s exclusion of a general token formatter. - Uses the input’s own UTC offset at that instant (DST-aware); never emits an obsolete named zone like “GMT” or “EST” on output, only numeric.
- Day, hour, minute, and second are always zero-padded to 2 digits; year is zero-padded to 4 digits.
- Fractional seconds are truncated:
second = 2DIGIThas no fraction. - Returns
""when the offset is not a whole number of minutes (local mean time, e.g. Africa/Monrovia −00:44:30 before 1972):zoneis("+" / "-") 4DIGIT, meaning ±(hh·60 + mm) minutes. - Returns
""for a negative year:year = 4*DIGIThas no sign. Years of five or more digits are written in full. - Compatibility: before 1.16.0 these inputs gave strings outside the grammar (
"-0044.5","00-1"). For the value itself useTemporal.ZonedDateTime#toString().
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
value | string | zoned ISO 8601 datetime string (e.g. “2024-03-15T14:30:00-04:00[America/New_York]”) |
Returns
Section titled “Returns”RFC 5322 date-time string, or "" on invalid input, a sub-minute offset or a negative year
Examples
Section titled “Examples”import { formatRfc2822 } from "@northguild/gmt/zoned/format";
formatRfc2822("2024-03-15T14:30:00-04:00[America/New_York]") // "Fri, 15 Mar 2024 14:30:00 -0400"