Temporal.ZonedDateTime.prototype.withTimeZone()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
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.ZonedDateTime
instance representing the time zone to use. If aTemporal.ZonedDateTime
instance, 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
timeZone
is not a string or aTemporal.ZonedDateTime
instance. 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
Specification |
---|
Temporal proposal # sec-temporal.zoneddatetime.prototype.withtimezone |
Browser compatibility
BCD tables only load in the browser