Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Temporal.ZonedDateTime.prototype.offsetNanoseconds

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Want more support for this feature? Tell us why.

Die offsetNanoseconds Zugriffs-Eigenschaft von Temporal.ZonedDateTime Instanzen gibt eine ganze Zahl zurück, die den Offset darstellt, der verwendet wird, um den internen Moment als Anzahl von Nanosekunden (positiv oder negativ) zu interpretieren. Der Wert ist eine sichere ganze Zahl, da er kleiner als ein Tag ist, das sind 8.64e15 Nanosekunden.

Der Set-Accessor von offsetNanoseconds ist undefined. Sie können diese Eigenschaft nicht direkt ändern. Verwenden Sie die with() Methode, um ein neues Temporal.ZonedDateTime Objekt mit dem gewünschten neuen offset Wert zu erstellen (was diese Eigenschaft ebenfalls ändern wird), oder verwenden Sie die withTimeZone() Methode, um ein neues Temporal.ZonedDateTime Objekt in einer anderen Zeitzone zu erstellen.

Beispiele

Verwendung von 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

Hier ist eine Möglichkeit, ein ZonedDateTime zu erhalten, das dieselbe Uhrzeit in UTC repräsentiert:

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]"

Hier ist eine bessere Möglichkeit, dasselbe Ergebnis zu erzielen:

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]"

Spezifikationen

Spezifikation
Temporal
# sec-get-temporal.zoneddatetime.prototype.offsetnanoseconds

Browser-Kompatibilität

Siehe auch