Temporal.ZonedDateTime.prototype.withTimeZone()
Baseline Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
The withTimeZone() method of Temporal.ZonedDateTime instances returns a new Temporal.ZonedDateTime object representing the same instant as this date-time but in the new time zone. Because all Temporal objects are designed to be immutable, this method essentially functions as the setter for the date-time's timeZoneId property.
To replace the date-time component properties, use the with() method. To replace its calendar, use the withCalendar() method.
Syntax
withTimeZone(timeZone)
Parameters
-
timeZone - Either a string or a
Temporal.ZonedDateTimeinstance representing the time zone to use. If aTemporal.ZonedDateTimeinstance, its time zone is used. If a string, it can be a named time zone identifier, an offset time zone identifier, or a date-time string containing a time zone identifier or an offset (see time zones and offsets for more information).
Return value
A new Temporal.ZonedDateTime object representing the same instant as this date-time but in the new time zone.
Exceptions
-
TypeError - Thrown if
timeZoneis not a string or aTemporal.ZonedDateTimeinstance. -
RangeError - Thrown if the time zone name is invalid.
Examples
Using withTimeZone()
const meetingTime = Temporal.ZonedDateTime.from(
"2021-08-01T12:00[America/New_York]",
);
const meetingTimeInParis = meetingTime.withTimeZone("Europe/Paris");
console.log(meetingTimeInParis.toString()); // 2021-08-01T18:00:00+02:00[Europe/Paris]
Replacing the time zone while keeping the same wall-clock time
In the rare case where you want to keep the wall-clock time the same but change the time zone (and result in a different instant), convert it to a Temporal.PlainDateTime first:
const meetingTime = Temporal.ZonedDateTime.from(
"2021-08-01T12:00[America/New_York]",
);
const meetingTimeInParis = meetingTime
.toPlainDateTime()
.toZonedDateTime("Europe/Paris");
console.log(meetingTimeInParis.toString()); // 2021-08-01T12:00:00+02:00[Europe/Paris]
Specifications
Browser compatibility
| Desktop | Mobile | Server | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
withTimeZone |
144 |
144 |
139 |
128 |
preview |
144 |
139 |
95 |
No |
No |
144 |
No |
1.4.0 |
2.7 |
26.0.0 |
See also
Temporal.ZonedDateTimeTemporal.ZonedDateTime.prototype.with()Temporal.ZonedDateTime.prototype.withCalendar()Temporal.ZonedDateTime.prototype.withPlainTime()Temporal.ZonedDateTime.from()Temporal.ZonedDateTime.prototype.timeZoneId
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/withTimeZone