Temporal.ZonedDateTime.prototype.getTimeZoneTransition()
Temporal.ZonedDateTime
实例的 getTimeZoneTransition()
方法返回一个 Temporal.ZonedDateTime
对象,该对象表示在此即时之后或之前,时区 UTC 偏移量发生变化的最接近的即时(返回的即时是变化后的第一个即时),如果没有这样的变化,则返回 null
。这对于查找时区的偏移量规则(例如夏令时模式)非常有用。
请注意,有关未来的即时可能不可靠,例如由于时区定义的变化。
语法
js
getTimeZoneTransition(direction)
getTimeZoneTransition(options)
参数
返回值
一个 Temporal.ZonedDateTime
对象,其即时 t
满足:
- 在
t
时的时区偏移量与t
前一纳秒的偏移量不同。 - 如果
direction
为"previous"
,则t < this.epochNanoseconds
;如果direction
为"next"
,则t > this.epochNanoseconds
。 - 在
this.epochNanoseconds
和t
之间的所有即时(不包括this.epochNanoseconds
和t
),偏移量是恒定的。
如果没有这样的过渡,则返回 null
。
示例
查找下一个时区过渡
js
const dt = Temporal.ZonedDateTime.from("2024-01-01T00-05:00[America/New_York]");
const transition = dt.getTimeZoneTransition("next");
console.log(transition.toString()); // "2024-03-10T03:00:00-04:00[America/New_York]"
const transition2 = transition.getTimeZoneTransition("next");
console.log(transition2.toString()); // "2024-11-03T01:00:00-05:00[America/New_York]"
const transition3 = dt.getTimeZoneTransition("previous");
console.log(transition3.toString()); // "2023-11-05T01:00:00-05:00[America/New_York]"
const dt2 = Temporal.ZonedDateTime.from("2024-01-01T00Z[UTC]");
console.log(dt2.getTimeZoneTransition("next")); // null
规范
规范 |
---|
Temporal # sec-temporal.zoneddatetime.prototype.gettimezonetransition |
浏览器兼容性
加载中…