Temporal.ZonedDateTime.prototype.withTimeZone()
Temporal.ZonedDateTime 实例的 withTimeZone() 方法返回一个新的 Temporal.ZonedDateTime 对象,该对象表示与此日期时间相同的时刻,但使用新的时区。由于所有 Temporal 对象都被设计为不可变,此方法本质上作为日期时间 timeZoneId 属性的设置器。
要替换日期时间组件属性,请使用 with() 方法。要替换其日历,请使用 withCalendar() 方法。
语法
js
withTimeZone(timeZone)
参数
timeZone-
一个字符串或一个
Temporal.ZonedDateTime实例,表示要使用的时区。如果是Temporal.ZonedDateTime实例,则使用其时区。如果是一个字符串,它可以是命名时区标识符、偏移时区标识符,或者包含时区标识符或偏移的日期时间字符串(有关更多信息,请参阅时区和偏移)。
返回值
一个新的 Temporal.ZonedDateTime 对象,表示与此日期时间相同的时刻,但使用新的时区。
异常
TypeError-
如果
timeZone不是字符串或Temporal.ZonedDateTime实例,则抛出此错误。 RangeError-
如果时区名称无效,则抛出此错误。
示例
使用 withTimeZone()
js
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]
在保持相同挂钟时间的同时替换时区
在您希望保持挂钟时间不变但更改时区(并导致不同的时刻)的罕见情况下,请先将其转换为 Temporal.PlainDateTime
js
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]
规范
| 规范 |
|---|
| Temporal # sec-temporal.zoneddatetime.prototype.withtimezone |
浏览器兼容性
加载中…