Temporal.Instant
Базовая поддержка Ограниченная доступность
Эта функция не относится к базовым, поскольку не работает в некоторых наиболее широко используемых браузерах.
Объект Temporal.Instant представляет собой уникальный момент времени с точностью до наносекунд. В основе его представления лежит количество наносекунд, прошедших с начала эпохи Unix (полуночи в начале 1 января 1970 года по UTC), без указания часового пояса или календарной системы.
Описание
Temporal.Instant семантически эквивалентен Date. Оба объекта представляют один момент времени, но Temporal.Instant точнее, поскольку хранит наносекунды, а не миллисекунды. Кроме того, Temporal.Instant позволяет избежать подводных камней, связанных с Date, поскольку не предполагает наличия сведений о календаре или часовом поясе. Если вам нужны какие-либо сведения о дате или времени, например год или месяц, сначала преобразуйте объект в Temporal.ZonedDateTime с помощью toZonedDateTimeISO().
Преобразовать Date в Temporal.Instant можно с помощью метода Date.prototype.toTemporalInstant(). Его следует предпочесть другим методам, например Temporal.Instant.fromEpochMilliseconds(), поскольку он требует меньше пользовательского кода и может быть лучше оптимизирован. Также можно преобразовать Temporal.Instant в Date, используя миллисекунды эпохи, например new Date(instant.epochMilliseconds).
Формат RFC 9557
Объекты Instant можно сериализовать и разбирать в формате RFC 9557 — расширении формата ISO 8601 / RFC 3339. Строка имеет следующий вид (пробелы добавлены только для удобства чтения и не должны присутствовать в самой строке):
YYYY-MM-DD T HH:mm:ss.sssssssss Z/±HH:mm
-
YYYY - Четырёхзначное число или шестизначное число со знаком
+или-. -
MM - Двухзначное число от
01до12. -
DD - Двухзначное число от
01до31. КомпонентыYYYY,MMиDDможно разделять символом-или не разделять. -
T - Разделитель даты и времени:
T,tили пробел. -
HH - Двухзначное число от
00до23. -
mmНеобязательно - Двухзначное число от
00до59. По умолчанию используется00. -
ss.sssssssssНеобязательно - Двухзначное число от
00до59. После него могут следовать.или,и от одной до девяти цифр. По умолчанию используется00. КомпонентыHH,mmиssможно разделять символом:или не разделять. Можно опустить толькоssлибо одновременноssиmm, поэтому время может иметь один из трёх видов:HH,HH:mmилиHH:mm:ss.sssssssss. -
Z/±HH:mm - Обозначение UTC
Zилиzлибо смещение относительно UTC в формате+или-, за которым следует формат компонента времени. Обратите внимание: точность до долей секунды (:ss.sssssssss) может не поддерживаться другими системами; такое значение принимается, но никогда не выводится. Если указано смещение, время интерпретируется с учётом этого смещения.
В качестве входных данных можно дополнительно указать идентификатор часового пояса и календарь в том же формате, что и ZonedDateTime, но они будут проигнорированы. Другие аннотации в формате [key=value] также игнорируются и не должны иметь флаг критичности.
При сериализации можно настроить количество цифр дробной части секунды и смещение.
Конструктор
-
Temporal.Instant()Экспериментальная функция - Создаёт новый объект
Temporal.Instant, напрямую принимая исходные данные.
Статические методы
-
Temporal.Instant.compare() - Возвращает число (-1, 0 или 1), указывающее, происходит ли первый момент времени раньше второго, совпадает с ним или наступает позже. Эквивалентно сравнению
epochNanosecondsдвух моментов времени. -
Temporal.Instant.from() - Создаёт новый объект
Temporal.Instantиз другого объектаTemporal.Instantили строки в формате RFC 9557. -
Temporal.Instant.fromEpochMilliseconds() - Создаёт новый объект
Temporal.Instantиз количества миллисекунд, прошедших с начала эпохи Unix (полуночи в начале 1 января 1970 года по UTC). -
Temporal.Instant.fromEpochNanoseconds() - Создаёт новый объект
Temporal.Instantиз количества наносекунд, прошедших с начала эпохи Unix (полуночи в начале 1 января 1970 года по UTC).
Свойства экземпляра
Эти свойства определены в Temporal.Instant.prototype и доступны всем экземплярам Temporal.Instant.
-
Temporal.Instant.prototype.constructor - Функция-конструктор, создавшая объект-экземпляр. Для экземпляров
Temporal.Instantисходным значением является конструкторTemporal.Instant(). -
Temporal.Instant.prototype.epochMilliseconds - Возвращает целое число, представляющее количество миллисекунд, прошедших с начала эпохи Unix (полуночи в начале 1 января 1970 года по UTC) до этого момента времени. Эквивалентно делению
epochNanosecondsна1e6с округлением вниз. -
Temporal.Instant.prototype.epochNanoseconds - Возвращает значение типа
BigInt, представляющее количество наносекунд, прошедших с начала эпохи Unix (полуночи в начале 1 января 1970 года по UTC) до этого момента времени. -
Temporal.Instant.prototype[Symbol.toStringTag] - Исходное значение свойства
[Symbol.toStringTag]— строка"Temporal.Instant". Это свойство используется вObject.prototype.toString().
Методы экземпляра
-
Temporal.Instant.prototype.add() - Возвращает новый объект
Temporal.Instant, представляющий этот момент времени, сдвинутый вперёд на заданную длительность (в формате, который можно преобразовать с помощьюTemporal.Duration.from()). -
Temporal.Instant.prototype.equals() - Возвращает
true, если значение этого момента времени эквивалентно значению другого момента времени (в формате, который можно преобразовать с помощьюTemporal.Instant.from()), иfalseв противном случае. Моменты сравниваются по наносекундам эпохи. ЭквивалентноTemporal.Instant.compare(this, other) === 0. -
Temporal.Instant.prototype.round() - Возвращает новый объект
Temporal.Instant, представляющий этот момент времени, округлённый до заданной единицы. -
Temporal.Instant.prototype.since() - Возвращает новый объект
Temporal.Duration, представляющий промежуток времени от другого момента (в формате, который можно преобразовать с помощьюTemporal.Instant.from()) до этого момента. Длительность положительна, если другой момент наступает раньше этого, и отрицательна, если позже. -
Temporal.Instant.prototype.subtract() - Возвращает новый объект
Temporal.Instant, представляющий этот момент времени, сдвинутый назад на заданную длительность (в формате, который можно преобразовать с помощьюTemporal.Duration.from()). -
Temporal.Instant.prototype.toJSON() - Возвращает строку, представляющую этот момент времени в том же формате RFC 9557, что и вызов
toString(). Предназначен для неявного вызова методомJSON.stringify(). -
Temporal.Instant.prototype.toLocaleString() - Возвращает строку с локализованным представлением этого момента времени. В реализациях с поддержкой API
Intl.DateTimeFormatэтот метод делегирует вызовIntl.DateTimeFormat. -
Temporal.Instant.prototype.toString() - Возвращает строку, представляющую этот момент времени в формате RFC 9557 с использованием указанного часового пояса.
-
Temporal.Instant.prototype.toZonedDateTimeISO() - Возвращает новый объект
Temporal.ZonedDateTime, представляющий этот момент времени в указанном часовом поясе с использованием календарной системы ISO 8601. -
Temporal.Instant.prototype.until() - Возвращает новый объект
Temporal.Duration, представляющий промежуток времени от этого момента до другого (в формате, который можно преобразовать с помощьюTemporal.Instant.from()). Длительность положительна, если другой момент наступает позже этого, и отрицательна, если раньше. -
Temporal.Instant.prototype.valueOf() - Выбрасывает исключение
TypeError, не позволяя экземплярамTemporal.Instantнеявно преобразовываться в примитивы при использовании в арифметических операциях или операциях сравнения.
Спецификации
| Спецификация |
|---|
| Temporal # sec-temporal-instant-objects |
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | Серверы | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari в iOS | Samsung Internet | WebView Android | WebView в iOS | Bun | Deno | Node.js | |
Instant |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
Instant |
Нет |
Нет |
139 |
Нет |
предварительная версия |
Нет |
139 |
Нет |
Нет |
Нет |
Нет |
Нет |
1.4.0 |
2.7 |
26.0.0 |
add |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
compare |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
epochMilliseconds |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
epochNanoseconds |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
equals |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
from |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
fromEpochMilliseconds |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
fromEpochNanoseconds |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
round |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
since |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
subtract |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
toJSON |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
toLocaleString |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
toString |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
toZonedDateTimeISO |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
until |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
valueOf |
144 |
144 |
139 |
128 |
предварительная версия |
144 |
139 |
95 |
Нет |
Нет |
144 |
Нет |
1.4.0 |
2.7 |
26.0.0 |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Instant