Deno 2.7 Ships the Temporal API — JavaScript Finally Gets a Sane Date System

The Date Problem JavaScript Has Had Since 1995

If you've ever spent a Friday afternoon debugging a timezone offset or a daylight-saving boundary in JavaScript, you know the root cause: the Date object was built in ten days in 1995, modeled loosely after Java's broken date API, and has never been replaced. It's mutable, it silently treats months as zero-indexed, and its timezone support amounts to "local time or UTC, your problem."

The TC39 Temporal proposal has been in development since 2017. Deno 2.7 ships it as a built-in, no flag required.

What Temporal Actually Gives You

Temporal is not a drop-in replacement for Date. It's a completely new set of types that cover every date-and-time concept distinctly:

  • Temporal.PlainDate — a calendar date with no time, no timezone. Use this for birthdays, deadlines, schedules.
  • Temporal.PlainTime — a wall-clock time with no date, no timezone. Use this for recurring daily events.
  • Temporal.ZonedDateTime — a fully-specified moment in a named IANA timezone. This is the one you want for "meeting at 3pm London time."
  • Temporal.Instant — a point on the UTC timeline. Equivalent to a Unix timestamp, but with nanosecond precision and sane arithmetic.
  • Temporal.Duration — a duration that distinguishes calendar units (months, years) from fixed units (hours, minutes). Adding one month to January 31 now gives you February 28/29 correctly, not a runtime error or a silent wrong answer.

All Temporal objects are immutable. Arithmetic operations return new objects, not mutated state. The design makes it structurally hard to write the bugs that currently plague date handling in JavaScript applications.

What Else Ships in Deno 2.7

Temporal is the headliner, but the release includes two other notable changes:

Windows ARM64 native support. Deno now ships first-party ARM64 binaries for Windows. This closes a meaningful gap for developers on ARM-based Windows hardware (Surface Pro X, Snapdragon X Elite machines) who previously had to run x64 under emulation.

npm package overrides. You can now override the version of a transitive npm dependency directly in your deno.json, without patching package.json or using a workaround. This is parity with npm's and pnpm's overrides feature, and it matters in practice: many security patches arrive in transitive dependencies, and being able to pin them without forking a package tree is straightforward maintainability.

Deno in Production in 2026

Deno's production adoption story has shifted considerably since 2.0. Plaid, The Guardian, and Slack are among the organizations running Deno in production. The runtime's built-in TypeScript support, no-configuration formatter and linter, and native npm compatibility (since 1.28) have reduced the friction arguments against adoption. Node.js still dominates by volume; Deno is a credible choice for greenfield projects where developer experience matters and you'd rather not configure a build chain from scratch.

The Temporal API will also eventually land in Node.js and browser runtimes — it's at Stage 3 of the TC39 process — but Deno is shipping it now, in stable, without a flag.