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
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 eineTemporal.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()
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.
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 GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
toZonedDateTime |
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.