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 toZonedDateTime() Methode von Temporal.PlainDateTime-Instanzen gibt eine neue Temporal.ZonedDateTime-Instanz zurück, die dasselbe Datum-Uhrzeit wie diese einfache Datum-Uhrzeit in der angegebenen Zeitzone darstellt.
Syntax
toZonedDateTime(timeZone)
toZonedDateTime(timeZone, options)
Parameter
timeZone-
Entweder ein String oder eine
Temporal.ZonedDateTime-Instanz, die die zu verwendende Zeitzone repräsentiert. Wenn eineTemporal.ZonedDateTime-Instanz verwendet wird, wird deren Zeitzone verwendet. Ist es ein String, kann es sich um einen benannten Zeitzonenbezeichner, einen Offset-Zeitzonenbezeichner oder einen Datum-Uhrzeit-String handeln, der einen Zeitzonenbezeichner oder einen Offset enthält (siehe Zeitzonen und Offsets für mehr Informationen). optionsOptional-
Ein Objekt, das die 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 Zeitumstellungen. Mögliche Werte sind
"compatible","earlier","later"und"reject". Standardwert ist"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 dasselbe Datum-Uhrzeit wie diese einfache Datum-Uhrzeit 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 Zeitzonenbezeichner.- Die Uhrzeit ist in der Zeitzone mehrdeutig und
options.disambiguationist auf"reject"gesetzt.
TypeError-
Wird ausgelöst, wenn einer 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]'
Umgang mit mehrdeutigen Zeiten
Unten haben wir zwei Uhrzeiten, die wir in der Zeitzone America/New_York interpretieren möchten. Die erste, dtNotExist, existierte nie aufgrund eines zeitlichen Vorwärtswechsels der Sommerzeit, daher müssen wir zwischen den Zeiten 01:05:00-05:00 oder 03:05:00-04:00 wählen. Die zweite, dtAmbiguous, trat zweimal auf, da die Sommerzeit zurückgestellt wurde, daher müssen wir zwischen den Zeiten 01:05:00-04:00 oder 01:05:00-05:00 wählen. Für eine ausführlichere 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> |
Browser-Kompatibilität
Loading…