Node.js 26 Es la Nueva Versión Current: Temporal API por Defecto, V8 14.6 y el Objeto Date Ya Es Historia
Node.js 26 llegó el 5 de mayo como la nueva línea Current, activando la API Temporal por defecto y poniendo fin al reinado del objeto Date de JavaScript. V8 sube a 14.6, Undici a 8.0, y el LTS llega en octubre de 2026.
Node.js 26.0.0 se publicó el 5 de mayo de 2026 con la API Temporal activada por defecto. Tras años de usar el flag --harmony-temporal, polyfills de Intl y una rotación interminable de date-fns, luxon y dayjs tapando los defectos fundamentales de Date, JavaScript cuenta al fin con una API de fecha y hora de primera clase integrada directamente en el runtime.
Date no desaparece todavía, pero queda funcionalmente obsoleto. El código nuevo no debería usarlo. Temporal ofrece Temporal.PlainDate, Temporal.ZonedDateTime, Temporal.Duration, Temporal.Now y Temporal.Instant para momentos anclados al epoch. Cada operación devuelve un nuevo valor. Nada muta. Las comparaciones entre zonas horarias no requieren conversiones a UTC.
Lo Que Temporal Realmente Soluciona
La API antigua hacía trivialmente fácil introducir estos bugs:
// Silenciosamente incorrecto si el mes de destino tiene menos días
new Date(2026, 0, 31 + 30) // "2 de marzo" — no "28 de febrero"
// Mutación: modificar d afecta cada referencia al objeto
const d = new Date();
d.setMonth(d.getMonth() + 1);
// La aritmética de zonas horarias requería una conversión manual a UTC
const utc = Date.UTC(year, month, day);
El equivalente con Temporal:
Temporal.PlainDate.from('2026-01-31').add({ months: 1 })
// Devuelve 2026-02-28 — gestiona el desbordamiento correctamente por defecto
// Puede configurarse para lanzar excepción en resultados ambiguos
const now = Temporal.Now.zonedDateTimeISO('America/New_York');
const tomorrow = now.add({ days: 1 });
// Consciente de zona horaria, correcto con DST, sin baile UTC
El comportamiento de excepción-en-ambigüedad es el default correcto. Date devuelve valores incorrectos silenciosamente; Temporal te obliga a gestionar los casos límite de forma explícita.
Qué Más Trae Node.js 26
- V8 14.6 — mejor rendimiento en desestructuración de objetos, mejores compile hints para JIT, reducción del overhead de inicio en aplicaciones con muchos módulos
- Undici 8.0 — el cliente HTTP integrado de Node con mejor propagación de
AbortSignal, cancelación de fetch más limpia y mayor rendimiento en streaming - Deprecaciones formales:
node:punycode,node:domainy varios métodoscryptomás antiguos están marcados para eliminación en una versión principal futura. Revisa tu base de código antes de actualizar. require()de módulos ES — el flag experimental desaparece; elrequire()síncrono para módulos ES llega estable, eliminando el último punto de fricción mayor en la interoperabilidad CJS/ESM
La actualización a Undici 8.0 es especialmente significativa para aplicaciones que realizan muchas peticiones HTTP. La mejora en la propagación de AbortSignal corrige una clase de bugs de fuga de solicitudes que aparecían bajo carga cuando las peticiones eran canceladas a mitad de ejecución.
Calendario LTS
Node.js 26 entra en Long Term Support en octubre de 2026 y recibe mantenimiento hasta abril de 2028. Si estás en Node.js 22 LTS, tienes hasta abril de 2027 para parches de seguridad —no hay urgencia. Si sigues en Node.js 18, alcanzó el fin de vida en abril de 2025 y ya estás ejecutando software sin soporte.
La API Temporal por sí sola es razón suficiente para empezar a migrar el manejo de fechas en código nuevo hoy, sin esperar al corte LTS de octubre. La API es estable, la especificación está finalizada y el comportamiento es correcto. Tres años de dayjs en tus dependencias no es un motivo de orgullo.