Temporal.PlainDateTime.prototype.toZonedDateTime()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Die toZonedDateTime()-Methode von Temporal.PlainDateTime-Instanzen gibt eine neue Temporal.ZonedDateTime-Instanz zurück, die das gleiche Datum und die gleiche Zeit wie dieses einfache Datum-Zeit-Objekt darstellt, jedoch in der angegebenen Zeitzone.
Syntax
toZonedDateTime(timeZone)
toZonedDateTime(timeZone, options)
Parameter
timeZone-
Entweder ein String oder eine
Temporal.ZonedDateTime-Instanz, die die zu verwendende Zeitzone repräsentiert. Falls es sich um eineTemporal.ZonedDateTime-Instanz handelt, wird deren Zeitzone verwendet. Ist es ein String, kann es sich um einen benannten Zeitzonen-Identifikator, einen Offsets-Zeitzonen-Identifikator oder einen Datum-Zeit-String, der einen Zeitzonen-Identifikator oder einen Offset enthält, handeln (siehe Zeitzonen und Offsets für weitere Informationen). optionsOptional-
Ein Objekt, das folgende Eigenschaft enthält:
disambiguationOptional-
Ein String, der angibt, was zu tun ist, wenn diese einfache Zeit zu null oder mehr als einem Zeitpunkt in der Zeitzone korrespondiert, normalerweise aufgrund von Verschiebungen der Sommerzeit. Mögliche Werte sind
"compatible","earlier","later"und"reject". Standardmäßig"compatible". Weitere Informationen zu diesen Werten finden Sie unter Mehrdeutigkeiten und Lücken von lokaler Zeit zu UTC-Zeit.
Rückgabewert
Eine neue Temporal.ZonedDateTime-Instanz, die das gleiche Datum und die gleiche Zeit wie dieses einfache Datum-Zeit-Objekt, jedoch in der angegebenen Zeitzone darstellt.
Ausnahmen
RangeError-
Wird in einem der folgenden Fälle ausgelöst:
- Eine der Optionen ist ungültig.
timeZoneist kein gültiger Zeitzonen-Identifikator.- Die tatsächliche Uhrzeit ist in der Zeitzone mehrdeutig, und
options.disambiguationist auf"reject"gesetzt.
TypeError-
Wird ausgelöst, wenn eines der Argumente nicht vom erwarteten Typ ist.
Beispiele
>Verwendung von toZonedDateTime()
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]'
Behandlung von mehrdeutigen Zeiten
Unten haben wir zwei Uhrzeiten, die wir in der America/New_York-Zeitzone interpretieren möchten. Die erste, dtNotExist, hat aufgrund einer Vorwärtsverschiebung der Sommerzeit nie existiert, also müssen wir zwischen den Zeiten 01:05:00-05:00 oder 03:05:00-04:00 wählen. Die zweite, dtAmbiguous, erschien zweimal aufgrund einer Rückwärtsverschiebung der Sommerzeit, also 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 Mehrdeutigkeiten und Lücken von lokaler Zeit zu UTC-Zeit.
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> # sec-temporal.plaindatetime.prototype.tozoneddatetime> |