You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Missing month in Intl.DateTimeFormat output when using calendar: 'iso8601' in Node v24.13.0 and later #63041
For PlainYearMonth the default calendar is iso8601 and I have to pass it to toLocaleString, because else it's a mismatch.
Current workaround:
exportfunctionformatYearMonth(locale: string,yearMonth: Temporal.PlainYearMonth,options?: Intl.DateTimeFormatOptions,): string{returnTemporal.PlainYearMonth.from({calendar: 'gregory',// The default iso8601 calendar is returning an empty string for the long month nameyear: yearMonth.year,month: yearMonth.month,}).toLocaleString(locale,{ ...options,calendar: 'gregory'});}
There is discussion within ECMA-402 as to how to handle the iso8601 calendar within DateTimeFormat (tc39/ecma402#1036) as the consensus is that it should be entirely locale-independent and only support the YYYY-MM-dd date format, meaning no month or era names.
I think we can mark this as "undefined behaviour" pending clarification from the standards groups. Users are free to use JS-side workarounds if they find themselves directly impacted.
This issue has been marked as stale due to 90 days of inactivity.
It will be automatically closed in 30 days if no further activity occurs. If this is still relevant, please leave a comment or update it to keep it open.
Activity
fajarmf10 commentedon May 7, 2026
I can reproduce this on Windows with Node v25.9.0 / ICU 78.2.
The smaller repro also returns an empty string when passing a date explicitly:
Observed output:
''jamiter commentedon May 7, 2026
Also an issue with node 26. It surfaced when using the new Temporal API:
For PlainYearMonth the default calendar is
iso8601and I have to pass it totoLocaleString, because else it's a mismatch.Current workaround:
Renegade334 commentedon May 10, 2026
There is discussion within ECMA-402 as to how to handle the
iso8601calendar within DateTimeFormat (tc39/ecma402#1036) as the consensus is that it should be entirely locale-independent and only support theYYYY-MM-dddate format, meaning no month or era names.I think we can mark this as "undefined behaviour" pending clarification from the standards groups. Users are free to use JS-side workarounds if they find themselves directly impacted.
github-actions commentedon Aug 9, 2026
This issue has been marked as stale due to 90 days of inactivity.
It will be automatically closed in 30 days if no further activity occurs. If this is still relevant, please leave a comment or update it to keep it open.
deps: float ICU-23262 patch for icu78
deps: float ICU-23262 patch for icu78
deps: float ICU-23262 patch for icu78
deps: float ICU-23262 patch for icu78
fix(layer2): remove the node-63041 recipe (#343)