Temporal.PlainDateTime.prototype.toZonedDateTime()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Die Methode toZonedDateTime() von Temporal.PlainDateTime Instanzen gibt eine neue Temporal.ZonedDateTime Instanz zurück, die das gleiche Datum und die gleiche Uhrzeit wie dieses Plain-Date-Time-Datumsobjekt repräsentiert, jedoch in der angegebenen Zeitzone.

Syntax

js
toZonedDateTime(timeZone)
toZonedDateTime(timeZone, options)

Parameter

timeZone

Entweder ein String oder eine Temporal.ZonedDateTime Instanz, die die zu verwendende Zeitzone repräsentiert. Wenn es sich um eine Temporal.ZonedDateTime Instanz handelt, wird deren Zeitzone verwendet. Wenn es sich um einen String handelt, kann dies ein benannter Zeitzonen-Identifier, ein Offset-Zeitzonen-Identifier oder ein Datum-Zeit-String sein, der einen Zeitzonen-Identifier oder einen Offset enthält (siehe Zeitzonen und Offsets für weitere Informationen).

options Optional

Ein Objekt mit der folgenden Eigenschaft:

disambiguation Optional

Ein String, der angibt, was zu tun ist, wenn diese Plain-Zeit null oder mehr als einen Zeitpunkt in der Zeitzone entspricht, normalerweise aufgrund von Änderungen der Sommerzeit. Mögliche Werte sind "compatible", "earlier", "later" und "reject". Standardwert ist "compatible". Weitere Informationen zu diesen Werten finden Sie unter Zweideutigkeiten und Lücken von lokaler Zeit zu UTC-Zeit.

Rückgabewert

Eine neue Temporal.ZonedDateTime Instanz, die das gleiche Datum und die gleiche Uhrzeit wie dieses Plain-Date-Time-Datumsobjekt repräsentiert, jedoch in der angegebenen Zeitzone.

Ausnahmen

RangeError

Wird in einem der folgenden Fälle ausgelöst:

  • Eine der Optionen ist ungültig.
  • timeZone ist kein gültiger Zeitzonen-Identifier.
  • Die Wanduhrenzeit ist in der Zeitzone mehrdeutig, und options.disambiguation ist auf "reject" gesetzt.
TypeError

Wird ausgelöst, wenn eines der Argumente nicht den erwarteten Typ hat.

Beispiele

Verwenden von toZonedDateTime()

js
const dt = Temporal.PlainDateTime.from("2021-08-01T12:34:56");
const zdt = dt.toZonedDateTime("America/New_York");
console.log(zdt.toString()); // '2021-08-01T12:34:56-04:00[America/New_York]'

const dt2 = Temporal.PlainDateTime.from("2021-01-01T12:34:56");
const zdt2 = dt2.toZonedDateTime("America/New_York");
console.log(zdt2.toString()); // '2021-01-01T12:34:56-05:00[America/New_York]'

Behandeln von mehrdeutigen Zeiten

Im Folgenden haben wir zwei Wanduhrenzeiten, die wir in der Zeitzone America/New_York interpretieren möchten. Die erste, dtNotExist, existierte aufgrund einer Vorverlagerung der Sommerzeit nie, daher müssen wir zwischen den Zeiten 01:05:00-05:00 oder 03:05:00-04:00 wählen. Die zweite, dtAmbiguous, kam aufgrund einer Rückverlagerung der Sommerzeit zweimal vor, daher müssen wir zwischen den Zeiten 01:05:00-04:00 oder 01:05:00-05:00 wählen. Für eine detailliertere Erklärung dieser Situation siehe Zweideutigkeiten und Lücken von lokaler Zeit zu UTC-Zeit.

js
const dtNotExist = Temporal.PlainDateTime.from("2024-03-10T02:05:00");
const dtAmbiguous = Temporal.PlainDateTime.from("2024-11-03T01:05:00");

// Default: compatible
console.log(dtNotExist.toZonedDateTime("America/New_York").toString());
// '2024-03-10T03:05:00-04:00[America/New_York]'
console.log(dtAmbiguous.toZonedDateTime("America/New_York").toString());
// '2024-11-03T01:05:00-04:00[America/New_York]'

// Use the earlier time for ambiguous times
console.log(
  dtNotExist
    .toZonedDateTime("America/New_York", { disambiguation: "earlier" })
    .toString(),
);
// '2024-03-10T01:05:00-05:00[America/New_York]'
console.log(
  dtAmbiguous
    .toZonedDateTime("America/New_York", { disambiguation: "earlier" })
    .toString(),
);
// '2024-11-03T01:05:00-04:00[America/New_York]'

// Use the later time for ambiguous times
console.log(
  dtNotExist
    .toZonedDateTime("America/New_York", { disambiguation: "later" })
    .toString(),
);
// '2024-03-10T03:05:00-04:00[America/New_York]'
console.log(
  dtAmbiguous
    .toZonedDateTime("America/New_York", { disambiguation: "later" })
    .toString(),
);
// '2024-11-03T01:05:00-05:00[America/New_York]'

// Throw an error for ambiguous times
dtNotExist.toZonedDateTime("America/New_York", { disambiguation: "reject" });
// RangeError: instant is ambiguous

Spezifikationen

Specification
Temporal proposal
# sec-temporal.plaindatetime.prototype.tozoneddatetime

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
toZonedDateTime
Experimental

Legend

Tip: you can click/tap on a cell for more information.

No support
No support
Experimental. Expect behavior to change in the future.
See implementation notes.
User must explicitly enable this feature.

Siehe auch