date Renderer
renderAs: 'date' formats a date-only value using Intl.DateTimeFormat. Set parseMode to tell the renderer how to interpret the raw value.
Core Examples
Basic Date
ISO date strings formatted with the default medium preset. A null contract date uses a custom fallbackText.
{ key: 'joined', renderAs: 'date', renderAsOptions: { parseMode: 'iso-date' } }
{ key: 'contract', renderAs: 'date', renderAsOptions: { parseMode: 'iso-date', fallbackText: 'Permanent' } }
Format Presets
formatPreset maps to Intl.DateTimeFormat option sets. The same date displayed across all four presets:
short / medium / long / full presets applied to the same ISO date value.
{ renderAs: 'date', renderAsOptions: { parseMode: 'iso-date', formatPreset: 'short' } } // 3/15/23
{ renderAs: 'date', renderAsOptions: { parseMode: 'iso-date', formatPreset: 'medium' } } // Mar 15, 2023 (default)
{ renderAs: 'date', renderAsOptions: { parseMode: 'iso-date', formatPreset: 'long' } } // March 15, 2023
{ renderAs: 'date', renderAsOptions: { parseMode: 'iso-date', formatPreset: 'full' } } // Wednesday, March 15, 2023
Locale
locale accepts any BCP 47 locale tag. Output follows the locale's date ordering and month names:
Same date rendered in US English, German, and Japanese.
{ renderAs: 'date', renderAsOptions: { parseMode: 'iso-date', locale: 'en-US', formatPreset: 'long' } }
{ renderAs: 'date', renderAsOptions: { parseMode: 'iso-date', locale: 'de-DE', formatPreset: 'long' } }
{ renderAs: 'date', renderAsOptions: { parseMode: 'iso-date', locale: 'ja-JP', formatPreset: 'long' } }
Options Reference
| Option | Type | Default | Effect |
|---|---|---|---|
parseMode | TemporalParseMode | required | How to parse the raw value. See parse modes below. |
locale | string | 'en-US' | BCP 47 locale tag for Intl.DateTimeFormat. |
timezone | string | 'local' | 'local', 'utc', or any IANA timezone (e.g. 'America/New_York'). |
formatPreset | 'short' | 'medium' | 'long' | 'full' | 'medium' | Preset Intl option set for date display. |
formatOptions | Intl.DateTimeFormatOptions | unset | Full Intl.DateTimeFormat options. Merged over formatPreset; explicit timeZone inside formatOptions takes precedence over timezone. |
fallbackText | string | 'Invalid' | Text shown when the value cannot be parsed. |
className | string | unset | Additional CSS class on the root element. |
parseMode values
| Value | Parses |
|---|---|
'iso-date' | YYYY-MM-DD strings |
'iso-datetime' | ISO 8601 datetime strings |
'epoch-ms' | Unix timestamp in milliseconds |
'epoch-sec' | Unix timestamp in seconds |
'iso-time' | HH:MM[:SS] strings (anchored to 1970-01-01) |
'any' | Auto-detect: tries epoch heuristic, then ISO patterns |
Caveats
parseModeis required. Without it the renderer outputsfallbackTextimmediately without attempting to parse.iso-dateinput is parsed as local midnight (YYYY-MM-DDT00:00:00). Combined with a non-localtimezoneinformatOptions, the displayed date may shift by one day.formatOptionsis deep-merged overformatPresetoutput. AtimeZonekey insideformatOptionstakes full precedence over thetimezoneoption.Dateobjects are accepted directly by all parse modes and bypass the parse step.- All options accept
(entity) => valuefunctions for per-row dynamic values.