Node.js 26 is here, and the headline feature is Temporal, the modern date/time
API that replaces Date for anything beyond trivial use cases. After years behind
the --experimental-temporal flag, Temporal is now stable and enabled by default.
Temporal: dates done right
import { Temporal } from 'node:temporal'
// Immutable, timezone-aware instant
const now = Temporal.Now.zonedDateTimeISO()
// → 2026-06-12T14:00:00-04:00[America/New_York]
// Add durations without mutation
const nextWeek = now.add({ days: 7 })
// Compare without pain
const isAfter = Temporal.ZonedDateTime.compare(a, b)
// Duration arithmetic that works
const duration = Temporal.Duration.from({ hours: 1, minutes: 30 })
const totalMinutes = duration.total('minutes') // → 90
Key advantages over Date:
- Immutable, all operations return new instances
- Timezone-aware,
ZonedDateTime carries IANA timezone, not just offset
- Correct arithmetic, adding a day across DST transitions works correctly
- No more
moment, Temporal replaces date libraries for most use cases
What else shipped
- V8 14.6, brings
Map.getOrInsert / getOrInsertComputed, Error.isError,
RegExp.escape, and Uint8Array base64/hex methods
- Pure JavaScript
buffer, the buffer module rewritten in JS, no native
dependency
Intl.NumberFormat v3, expanded formatting options for currencies, units,
and compact notation
- Corepack removed, the package manager manager is gone; use
npm, pnpm,
or yarn directly
Upgrade path
nvm install 26
node --version # v26.0.0
Node.js 26 is the new LTS release line (even-numbered). Node.js 24 will
continue receiving critical fixes but new feature work targets 26.
The bottom line
Temporal going stable is the biggest JavaScript date/time improvement since...
ever. If your codebase uses moment, luxon, date-fns, or dayjs, Temporal
may replace them for core use cases. Node.js 26 also brings ES2026 features
natively, no transpilation needed. If you're starting a new project, start on
Node 26.