Temporal.Now
Temporal.Now 命名空间对象包含用于以各种格式获取当前时间的静态方法。
描述
与大多数全局对象不同,Temporal.Now 不是一个构造函数。您不能使用 new 运算符 或将 Temporal.Now 对象调用为函数。Temporal.Now 的所有属性和方法都是静态的(就像 Math 对象一样)。
最根本的是,系统时间由操作系统以自 Unix 纪元以来的时间(通常是毫秒级精度,但也可能是纳秒级)返回。 Temporal.Now.instant() 将此时间作为 Temporal.Instant 对象返回。
可以像 Temporal.Instant.prototype.toZonedDateTimeISO() 一样,在时区(默认为系统时区 Temporal.Now.timeZoneId())中解释一个时间点。要获取 Temporal.ZonedDateTime 对象,您可以使用 Temporal.Now.zonedDateTimeISO()。您还可以使用 Temporal.Now.plainDateISO()、Temporal.Now.plainTimeISO() 和 Temporal.Now.plainDateTimeISO() 来获取日期和时间的各个部分。
例如,如果计算机设置为“America/New_York”时区,Temporal.Now.zonedDateTimeISO() 将返回一个带时区的日期时间,例如:2021-08-01T10:40:12.345-04:00[America/New_York]。在这种情况下,Temporal.Now.plainTimeISO() 将返回此带时区日期时间的时间部分:10:40:12.345。但是,如果您调用 Temporal.Now.plainTimeISO("UTC"),它将返回 UTC 时区中带时区日期时间的时间部分:14:40:12.345。这对于跨系统通信特别有用,因为另一端可能期望以不同的时区接收时间。
时间精度降低
为防止计时攻击和指纹识别,Temporal.Now 函数的精度可能会根据浏览器设置进行舍入。在 Firefox 中,privacy.reduceTimerPrecision 首选项默认启用,默认为 2ms。您也可以启用 privacy.resistFingerprinting,在这种情况下,精度将为 100ms 或 privacy.resistFingerprinting.reduceTimerPrecision.microseconds 的值(取较大者)。
例如,在降低时间精度的情况下,Temporal.Now.instant().epochMilliseconds 的结果将始终是 2 的倍数,或者在启用 privacy.resistFingerprinting 的情况下是 100 的倍数(或 privacy.resistFingerprinting.reduceTimerPrecision.microseconds 的倍数)。
// reduced time precision (2ms) in Firefox 60
Temporal.Now.instant().epochMilliseconds;
// Might be:
// 1519211809934
// 1519211810362
// 1519211811670
// …
// reduced time precision with `privacy.resistFingerprinting` enabled
Temporal.Now.instant().epochMilliseconds;
// Might be:
// 1519129853500
// 1519129858900
// 1519129864400
// …
静态属性
Temporal.Now[Symbol.toStringTag]-
[Symbol.toStringTag]属性的初始值是字符串"Temporal.Now"。此属性用于Object.prototype.toString()。
静态方法
Temporal.Now.instant()实验性-
以
Temporal.Instant对象形式返回当前时间。 Temporal.Now.plainDateISO()实验性-
以 ISO 8601 日历和指定时区中的
Temporal.PlainDate对象形式返回当前日期。 Temporal.Now.plainDateTimeISO()实验性-
以 ISO 8601 日历和指定时区中的
Temporal.PlainDateTime对象形式返回当前日期和时间。 Temporal.Now.plainTimeISO()实验性-
以指定时区中的
Temporal.PlainTime对象形式返回当前时间。 Temporal.Now.timeZoneId()实验性-
返回一个表示系统当前时区的时区标识符。
Temporal.Now.zonedDateTimeISO()实验性-
以 ISO 8601 日历和指定时区中的
Temporal.ZonedDateTime对象形式返回当前日期和时间。
规范
| 规范 |
|---|
| Temporal # sec-temporal-now-object |
浏览器兼容性
加载中…