Temporal.Now

Temporal.Now 对象有几个方法可以提供有关当前时间和日期的信息。

方法

Temporal.Now.zonedDateTimeISO()

Temporal.Now.zonedDateTimeISO(timeZone: object | string = Temporal.Now.timeZone()) : Temporal.ZonedDateTime

参数:

  • timeZone(可选对象或字符串):获取当前日期和时间所在的时区,作为 Temporal.TimeZone 对象、实现时区协议的对象或字符串。 如果没有给出,将使用当前系统时区。

返回: 一个 Temporal.ZonedDateTime 对象,表示当前系统日期、时间、时区和时区偏移量。

此方法根据系统设置获取当前日期、时间、时区和时区偏移量,采用 ISO 8601 日历系统计算。 可选地,可以给出计算时间的时区,而不是当前系统时区。

此方法与 zonedDateTime() 相同,但始终使用 ISO 8601 日历。

示例用法:

financialCentres = {
  'New York': 'America/New_York',
  London: 'Europe/London',
  Tokyo: 'Asia/Tokyo'
};
console.log(`Here: ${Temporal.Now.zonedDateTimeISO()}`);
Object.entries(financialCentres).forEach(([name, timeZone]) => {
  console.log(`${name}: ${Temporal.Now.zonedDateTimeISO(timeZone)}`);
});
// example output:
// Here: 2020-09-18T01:17:48.431957915-07:00[America/Los_Angeles]
// New York: 2020-09-18T04:17:48.435068431-04:00[America/New_York]
// London: 2020-09-18T09:17:48.438068435+01:00[Europe/London]
// Tokyo: 2020-09-18T17:17:48.441068438+09:00[Asia/Tokyo]

Temporal.Now.zonedDateTime()

Temporal.Now.zonedDateTime(calendar: object | string, timeZone: object | string = Temporal.Now.timeZone()) : Temporal.ZonedDateTime

参数:

  • calendarTemporal.Calendar、普通对象或字符串):获取当前日期和时间的日历系统。
  • timeZone(可选对象或字符串):获取当前日期和时间所在的时区,作为 Temporal.TimeZone 对象、实现时区协议的对象或字符串。 如果没有给出,将使用当前系统时区。

返回: 表示当前系统日期、时间、时区和时区偏移量的 Temporal.ZonedDateTime 对象。

该方法根据给定日历系统的系统设置,获取当前日期、时间、时区和时区偏移量。 可选地,可以给出计算时间的时区,而不是当前系统时区。

如果您只想使用 ISO 8601 日历,请使用 Temporal.Now.zonedDateTimeISO()

Temporal.Now.instant()

Temporal.Now.instant() : Temporal.Instant

参数:

返回: 表示当前系统时间的 Temporal.Instant 对象。

此方法获取当前准确的系统时间,而不考虑日历或时区。 例如,这是获取事件时间戳的好方法。 它的工作方式类似于旧式 JavaScript Date.now(),但精度为纳秒而不是毫秒。

示例用法:

function timeit(func) {
  start = Temporal.Now.instant();
  try {
    return func();
  } finally {
    end = Temporal.Now.instant();
    console.log(`The function took ${end.since(start)}`);
  }
}
timeit(() => JSON.parse(someData));
// example output:
// The function took PT0.001031756S

Temporal.Now.timeZone()

Temporal.Now.timeZone() : Temporal.TimeZone

返回: 根据当前系统设置表示时区的 Temporal.TimeZone 对象。

此方法获取当前系统时区。这通常是一个命名的 IANA 时区,因为这是大多数人配置他们的计算机的方式。

示例用法:

/ When is the next daylight saving change from now, in the current location?
tz = Temporal.Now.timeZone();
now = Temporal.Now.instant();
nextTransition = tz.getNextTransition(now);
before = tz.getOffsetStringFor(nextTransition.subtract({ nanoseconds: 1 }));
after = tz.getOffsetStringFor(nextTransition.add({ nanoseconds: 1 }));
console.log(`At ${nextTransition.toZonedDateTimeISO(tz)} the offset will change from UTC ${before} to ${after}`);
// example output:
// At 2021-03-14T03:00:00-07:00[America/Los_Angeles] the offset will change from UTC -08:00 to -07:00

Temporal.Now.plainDateTimeISO()

Temporal.Now.plainDateTimeISO(timeZone: object | string = Temporal.Now.timeZone()) : Temporal.PlainDateTime

参数:

  • timeZone(可选对象或字符串):获取当前日期和时间所在的时区,作为 Temporal.TimeZone 对象、实现时区协议的对象或字符串。如果没有给出,将使用当前系统时区。

返回: 一个 Temporal.PlainDateTime 对象,表示按照 ISO 8601 日历计算的当前系统日期和时间。

此方法根据系统设置获取当前日历日期和挂钟时间。可选地,可以给出计算时间的时区,而不是当前系统时区。

此方法与 相同 dateTime(),但始终使用 ISO 8601 日历。

示例用法:

financialCentres = {
  'New York': 'America/New_York',
  'London': 'Europe/London',
  'Tokyo': 'Asia/Tokyo',
};
console.log(`Here: ${Temporal.Now.plainDateTimeISO()}`);
Object.entries(financialCentres).forEach(([name, timeZone]) => {
  console.log(`${name}: ${Temporal.Now.plainDateTimeISO(timeZone)}`);
});
// example output:
// Here: 2020-01-24T21:51:02.142905166
// New York: 2020-01-25T00:52:14.756462142
// London: 2020-01-25T05:52:14.758534756
// Tokyo: 2020-01-25T14:52:14.759534758

Temporal.Now.plainDateTime()

Temporal.Now.plainDateTime(calendar: object | string, timeZone: object | string = Temporal.Now.timeZone()) : Temporal.PlainDateTime

参数:

  • calendarTemporal.Calendar, plain object, or string):获取当前日期和时间的日历系统。
  • timeZone(optional object or string):获取当前日期和时间的时区,作为 Temporal.TimeZone 对象、实现时区协议的对象或字符串。 如果没有给出,将使用当前系统时区。

返回: 一个 Temporal.PlainDateTime 对象,表示在给定日历系统的计算中的当前系统日期和时间。

此方法根据系统设置获取当前日历日期和挂钟时间。 可选地,可以给出计算时间的时区,而不是当前系统时区。

如果您只想使用 ISO 8601 日历,请使用 Temporal.Now.plainDateTimeISO()

Temporal.Now.plainDateISO()

Temporal.Now.plainDateISO(timeZone: object | string = Temporal.Now.timeZone()) : Temporal.PlainDate

参数:

  • timeZone (可选对象或字符串):获取当前日期和时间的时区,作为 Temporal.TimeZone 对象、实现时区协议的对象或字符串。 如果没有给出,将使用当前系统时区。

返回: 一个 Temporal.PlainDate 对象,表示 ISO 8601 日历中的当前系统日期。

此方法根据系统设置获取当前日历日期。 可选地,可以给出计算时间的时区,而不是当前系统时区。

此方法与 date() 相同,但始终使用 ISO 8601 日历。

示例用法:

// Is it New Year in the ISO 8601 calendar?
date = Temporal.Now.plainDateISO();
if (date.month === 1 && date.day === 1) console.log('New year!');

Temporal.Now.plainDate()

Temporal.Now.plainDate(calendar: object | string, timeZone: object | string = Temporal.Now.timeZone()) : Temporal.PlainDate

参数:

  • calendarTemporal.Calendar、普通对象或字符串):获取当前日期和时间的日历系统。
  • timeZone(可选对象或字符串):获取当前日期和时间所在的时区,作为 Temporal.TimeZone 对象、实现时区协议的对象或字符串。 如果没有给出,将使用当前系统时区。

返回: 一个 Temporal.PlainDate 对象,表示以给定日历计算的当前系统日期。

此方法根据系统设置获取当前日历日期。可选地,可以给出计算时间的时区,而不是当前系统时区。

如果您只想使用 ISO 8601 日历,请使用 Temporal.Now.plainDateISO()

// Is it Nowruz (New Year in the Persian calendar)?
date = Temporal.Now.plainDate('persian');
if (date.month === 1 && date.day === 1) console.log('New year!');

Temporal.Now.plainTimeISO()

Temporal.Now.plainTimeISO(timeZone: object | string = Temporal.Now.timeZone()) : Temporal.PlainTime

参数:

  • timeZone(可选对象或字符串):获取当前日期和时间所在的时区,可为 Temporal.TimeZone 对象、实现时区协议的对象或字符串。 如果没有给出,将使用当前系统时区。

返回: 一个 Temporal.PlainTime 对象,表示按照 ISO 8601 日历计算的当前系统时间。

此方法根据系统设置获取当前挂钟时间。 可选地,可以给出计算时间的时区,而不是当前系统时区

示例用法:

// Is it lunchtime?
time = Temporal.Now.plainTimeISO();
if (time.hour === 12) console.log('Lunchtime!');