Temporal.ZonedDateTime.prototype.offset

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

Temporal.ZonedDateTime 实例的 offset 访问器属性返回一个字符串,该字符串以 ±HH:mm(或 ±HH:mm:ss.sssssssss,并带有必要的亚分钟精度)的形式表示用于解释内部即时时间的偏移量。此偏移量在构造时保证对给定即时时间和时区有效。

offset 的设置访问器是 undefined。你不能直接更改此属性。使用 with() 方法可以创建一个带有所需新值(通常也会更改日期/时间)的新 Temporal.ZonedDateTime 对象,或者使用 withTimeZone() 方法可以在另一个时区创建一个新的 Temporal.ZonedDateTime 对象。

示例

使用 offset

js
const dt = Temporal.ZonedDateTime.from(
  "2021-07-01T12:00:00-07:00[America/Los_Angeles]",
);
console.log(dt.offset); // "-07:00"

const dt2 = Temporal.ZonedDateTime.from("2021-07-01T12:00:00-07[-07]");
console.log(dt2.offset); // "-07:00"

const dt3 = Temporal.ZonedDateTime.from(
  "1900-01-01T00:00:00+00:09:21[Europe/Paris]",
);
console.log(dt3.offset); // "+00:09:21"

const dt4 = Temporal.ZonedDateTime.from("2021-07-01T12:00:00Z[Asia/Shanghai]");
console.log(dt4.offset); // "+08:00"

更改 offset

如果本地时间恰好有两个有效的偏移量,例如在夏令时转换期间,你可以不改变其他任何内容而只改变偏移量。

js
const zdt = Temporal.ZonedDateTime.from(
  "2024-11-03T01:05:00-04:00[America/New_York]",
);
const newZDT = zdt.with({ offset: "-05:00" });
console.log(newZDT.toString()); // "2024-11-03T01:05:00-05:00[America/New_York]"

规范

规范
Temporal
# sec-get-temporal.zoneddatetime.prototype.offset

浏览器兼容性

另见