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 |
浏览器兼容性
加载中…