Temporal.ZonedDateTime.prototype.offsetNanoseconds

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

Temporal.ZonedDateTime 例項的 offsetNanoseconds 訪問器屬性返回一個整數,該整數表示用於解釋內部即時時間的偏移量,以納秒為單位(正或負)。該值是一個安全整數,因為它小於一天,即 8.64e15 納秒。

offsetNanoseconds 的設定器為 undefined。你不能直接更改此屬性。更改 offset 也會更改此屬性。

示例

使用 offsetNanoseconds

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

const dt2 = Temporal.ZonedDateTime.from(
  "2021-07-01T12:00:00+08:00[Asia/Shanghai]",
);
console.log(dt2.offsetNanoseconds); // 28800000000000

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

下面是獲取一個表示 UTC 中相同掛鐘時間的 ZonedDateTime 的一種方法

js
const dt = Temporal.ZonedDateTime.from(
  "2021-07-01T12:00:00-07:00[America/Los_Angeles]",
);
const dtInUTC = dt.add({ nanoseconds: dt.offsetNanoseconds });
console.log(dtInUTC.withTimeZone("UTC").toString()); // "2021-07-01T12:00:00+00:00[UTC]"

下面是獲取相同結果的更好方法

js
const dt = Temporal.ZonedDateTime.from(
  "2021-07-01T12:00:00-07:00[America/Los_Angeles]",
);
const dtInUTC = dt.toPlainDateTime().toZonedDateTime("UTC");
console.log(dtInUTC.toString()); // "2021-07-01T12:00:00+00:00[UTC]"

規範

規範
Temporal
# sec-get-temporal.zoneddatetime.prototype.offsetnanoseconds

瀏覽器相容性

另見