Temporal.ZonedDateTime.prototype.timeZoneId

可用性有限

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

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

Temporal.ZonedDateTime 实例的 timeZoneId 访问器属性返回一个字符串,表示用于解释内部即时时间(instant)的时区标识符。该字符串可以是首选格式的命名标识符(例如 "America/New_York"),也可以是 "±hh:mm" 形式的偏移量。如果时区有别名,timeZoneId 是用于创建 ZonedDateTime 的标识符,而不是规范化为主标识符后的结果。

timeZoneId 的设置器(set accessor)是 undefined。你不能直接更改此属性。使用 withTimeZone() 方法创建一个具有所需新值的 Temporal.ZonedDateTime 对象。

注意: 此字符串不适合向用户显示。使用 toLocaleString() 并提供适当的选项以获取本地化的字符串。

示例

使用 timeZoneId

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

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

const dt3 = dt2.withTimeZone("Asia/Shanghai");
console.log(dt3.timeZoneId); // "Asia/Shanghai"

timeZoneId 从未被规范化为主标识符;它与用于创建 ZonedDateTime 的标识符相同。

js
const dt = Temporal.ZonedDateTime.from(
  "2021-07-01T12:00:00+07:00[Asia/Ho_Chi_Minh]",
);
const dt2 = Temporal.ZonedDateTime.from(
  "2021-07-01T12:00:00+07:00[Asia/Saigon]",
);
console.log(dt.timeZoneId); // "Asia/Ho_Chi_Minh"
console.log(dt2.timeZoneId); // "Asia/Saigon"

但是,表示上的差异将被规范化。

js
const dt = Temporal.ZonedDateTime.from(
  "2021-07-01T12:00:00+07:00[asia/ho_chi_minh]",
);
console.log(dt.timeZoneId); // "Asia/Ho_Chi_Minh"

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

规范

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

浏览器兼容性

另见