Temporal
JavaScript 🟡 MidDéfinition
API de dates et heures conçue pour remplacer Date : objets immuables, fuseaux horaires explicites, précision à la nanoseconde, calendriers multiples. La proposition est au Stage 4 et figure dans la liste TC39 des propositions attendues pour ES2027. Elle est livrée dans Firefox 139 (27 mai 2025), Chrome 144 (13 janvier 2026) et Node.js 26 (5 mai 2026) ; Safari est encore en développement.
Analogie
Un agenda qui sait qu'un rendez-vous à 9 h à Paris n'est pas à 9 h à Tokyo, au lieu d'une simple horloge murale.
Exemple de code
// Node 26+, Chrome 144+, Firefox 139+
const maintenant = Temporal.Now.instant();
const date = Temporal.PlainDate.from('2026-09-27');
const rdv = date.toPlainDateTime('14:30')
.toZonedDateTime('Europe/Paris');
const dans30j = rdv.add({ days: 30 }); // immuable : nouvel objet
const duree = rdv.until(dans30j); // Temporal.Duration
console.log(duree.days); // 30
Cas d'usage
Réservations, facturation, planification multi-fuseaux : partout où Date et ses décalages implicites causent des bugs.
Anti-pattern
Mélanger Temporal et Date dans une même logique métier : convertir une seule fois aux frontières (toTemporalInstant / epochMilliseconds).
Termes liés
Sources
Fiche mise à jour le 2026-09-27