Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Temporal.ZonedDateTime : propriété offsetNanoseconds

Disponibilité limitée

Cette fonctionnalité n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.

Vous voulez une meilleure prise en charge pour cette fonctionnalité ? Dites-nous pourquoi.

La propriété d'accesseur offsetNanoseconds des instances de Temporal.ZonedDateTime retourne un entier représentant le décalage utilisé pour interpréter l'instant interne, en nombre de nanosecondes (positif ou négatif). La valeur est un entier sûr, car elle est inférieure à une journée, soit 8,64e15 nanosecondes.

Le mutateur d'accesseur de offsetNanoseconds est undefined. Vous ne pouvez pas modifier cette propriété directement. Utilisez la méthode with() pour créer un nouvel objet Temporal.ZonedDateTime avec la nouvelle valeur souhaitée de offset (ce qui modifie également cette propriété), ou utilisez la méthode withTimeZone() pour créer un nouvel objet Temporal.ZonedDateTime dans un autre fuseau horaire.

Exemples

Utiliser la propriété offsetNanoseconds

js
const dt = Temporal.ZonedDateTime.from(
  "2021-07-01T12:00:00-07:00[America/Los_Angeles]",
);
console.log(dt.offsetNanoseconds); // -25200000000000

const dt2 = Temporal.ZonedDateTime.from(
  "2021-07-01T12:00:00+08:00[Asia/Shanghai]",
);
console.log(dt2.offsetNanoseconds); // 28800000000000

const dt3 = Temporal.ZonedDateTime.from(
  "1900-01-01T00:00:00+00:09:21[Europe/Paris]",
);
console.log(dt3.offsetNanoseconds); // 561000000000

Voici une façon d'obtenir un ZonedDateTime représentant la même heure affichée en UTC :

js
const dt = Temporal.ZonedDateTime.from(
  "2021-07-01T12:00:00-07:00[America/Los_Angeles]",
);
const dtInUTC = dt.add({ nanoseconds: dt.offsetNanoseconds });
console.log(dtInUTC.withTimeZone("UTC").toString()); // "2021-07-01T12:00:00+00:00[UTC]"

Voici une meilleure façon d'obtenir le même résultat :

js
const dt = Temporal.ZonedDateTime.from(
  "2021-07-01T12:00:00-07:00[America/Los_Angeles]",
);
const dtInUTC = dt.toPlainDateTime().toZonedDateTime("UTC");
console.log(dtInUTC.toString()); // "2021-07-01T12:00:00+00:00[UTC]"

Spécifications

Spécification
Temporal
# sec-get-temporal.zoneddatetime.prototype.offsetnanoseconds

Compatibilité des navigateurs

Voir aussi