Secondes et millisecondes
Le constructeur Date attend des millisecondes lorsqu’on lui transmet un nombre. Multipliez des secondes Unix par 1 000.
const seconds = 1711972800;
const date = new Date(seconds * 1000);
console.log(date.toISOString());
// 2024-04-01T12:00:00.000Z
const nowMs = Date.now();
const nowSeconds = Math.floor(nowMs / 1000);Parser une date avec un fuseau explicite
const date = new Date('2024-04-01T14:00:00+02:00');
if (Number.isNaN(date.getTime())) {
throw new Error('Date invalide');
}
console.log(date.getTime()); // 1711972800000Une date et une heure sans décalage peuvent être interprétées dans le fuseau du navigateur. Utilisez Z pour UTC ou un décalage comme +02:00. La validation de Date ne suffit pas à rejeter toutes les dates calendaires impossibles : certaines sont normalisées.
Afficher un fuseau géographique
const formatter = new Intl.DateTimeFormat('fr-FR', {
dateStyle: 'full',
timeStyle: 'long',
timeZone: 'Europe/Paris'
});
console.log(formatter.format(date));Précision et grandes valeurs
Date représente les instants à la milliseconde. Les timestamps en nanosecondes dépassent couramment la précision entière de Number : lisez-les comme chaînes, puis utilisez BigInt. Une conversion vers Date ne conserve pas les fractions de milliseconde.
Ne déduisez pas définitivement l’unité du nombre de chiffres. Une valeur courte peut représenter des millisecondes proches de 1970.