Skip to content

Missing month in Intl.DateTimeFormat output when using calendar: 'iso8601' in Node v24.13.0 and later #63041

@jasongerbes-vista

Description

@jasongerbes-vista

Version

v24.15.0, v25.9.0

Platform

Darwin Jasons-MacBook-Pro-2.local 25.4.0 Darwin Kernel Version 25.4.0: Thu Mar 19 19:30:44 PDT 2026; root:xnu-12377.101.15~1/RELEASE_ARM64_T6000 arm64

Subsystem

No response

What steps will reproduce the bug?

Run the following code using Node.js 24.13.0 or later:

const dtfWithIsoCalendar = new Intl.DateTimeFormat('en-US', {
    dateStyle: 'full',
    timeStyle: 'long',
    timeZone: 'UTC',
    calendar: 'iso8601'
});

const date = new Date('2024-09-09T08:00:00Z');

console.log(dtfWithIsoCalendar.format(date));

How often does it reproduce? Is there a required condition?

The issue can be consistently reproduced under the following conditions:

  • Node.js version 24.13.0 or later
  • Using Intl.DateTimeFormat with calendar: 'iso8601'

The issue does not reproduce:

  • On Node.js version 24.12.0 and earlier
  • When using the default calendar ('gregory') instead of 'iso8601'

What is the expected behavior? Why is that the expected behavior?

Expected output:

2024 September 9, Monday at 08:00:00 AM UTC

The format() output should include the month "September".

What do you see instead?

Actual output (month is missing):

2024  9, Monday at 08:00:00 AM UTC

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    icuIssues and PRs related to the ICU dependency.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions