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 das gleiche Datum-Uhrzeit-Datum wie dieses einfache Datum-Uhrzeit enthält, 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 darstellt. Wenn eineTemporal.ZonedDateTime
-Instanz angegeben wird, wird deren Zeitzone verwendet. Wenn ein String angegeben wird, kann es ein benannter Zeitzonenidentifier, ein Offset-Zeitzonenidentifier oder ein Datum-Uhrzeit-String sein, der einen Zeitzonenidentifier oder ein Offset enthält (siehe Zeitzonen und Offsets für weitere Informationen). options
Optional-
Ein Objekt, das die folgende Eigenschaft enthält:
disambiguation
Optional-
Ein String, der angibt, was zu tun ist, wenn diese einfache Zeit mit null oder mehr als einem Zeitpunkt in der Zeitzone übereinstimmt, üblicherweise aufgrund von Verschiebungen der Sommerzeit. Mögliche Werte sind
"compatible"
,"earlier"
,"later"
und"reject"
. Standardmäßig wird"compatible"
verwendet. Weitere Informationen zu diesen Werten finden Sie unter Mehrdeutigkeit und Lücken von lokaler Zeit zu UTC-Zeit.
Rückgabewert
Eine neue Temporal.ZonedDateTime
-Instanz, die das gleiche Datum-Uhrzeit-Datum wie dieses einfache Datum-Uhrzeit enthält, 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 Zeitzonenidentifier.- Die Uhrzeit an der Wand ist mehrdeutig in der Zeitzone, und
options.disambiguation
ist auf"reject"
gesetzt.
TypeError
-
Wird ausgelöst, wenn eines der Argumente nicht vom erwarteten Typ ist.
Beispiele
Verwenden 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 an der Wand angezeigt werden und die wir in der Zeitzone America/New_York
interpretieren möchten. Die erste, dtNotExist
, existierte nie aufgrund einer Vorwärtsverschiebung 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
, erschien zweimal aufgrund einer Rückwärtsverschiebung der Sommerzeit, 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 Mehrdeutigkeit 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 |