Temporal.Instant
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Das Temporal.Instant
Objekt repräsentiert einen einzigartigen Zeitpunkt in der Geschichte, mit Nanosekunden-Genauigkeit. Es wird grundsätzlich als die Anzahl der Nanosekunden seit der Unix-Epoche (Mitternacht zu Beginn des 1. Januar 1970, UTC) dargestellt, ohne Berücksichtigung von Zeitzonen oder Kalendersystemen.
Beschreibung
Temporal.Instant
ist semantisch dasselbe wie Date
. Beide kapseln einen einzelnen Zeitpunkt, aber Temporal.Instant
ist präziser, da es Nanosekunden statt Millisekunden speichert. Temporal.Instant
vermeidet auch die Fallstricke von Date
, da es keine Annahmen über Kalender- oder Zeitzoneninformationen trifft - wenn Sie Datum- oder Zeitinformationen wie Jahr oder Monat lesen möchten, müssen Sie es zuerst in eine Temporal.ZonedDateTime
konvertieren, indem Sie toZonedDateTimeISO()
verwenden.
Sie können von Date
zu Temporal.Instant
mit der Methode Date.prototype.toTemporalInstant()
konvertieren, die gegenüber anderen Methoden wie Temporal.Instant.fromEpochMilliseconds()
bevorzugt werden sollte, da erstere weniger Benutzer-Code enthält und möglicherweise besser optimiert ist. Sie können auch von Temporal.Instant
zu Date
konvertieren, indem Sie dessen Epochen-Millisekunden verwenden, z.B. new Date(instant.epochMilliseconds)
.
RFC 9557 Format
Instant
Objekte können im RFC 9557 Format, einer Erweiterung des ISO 8601 / RFC 3339 Formats, serialisiert und geparst werden. Der String hat die folgende Form (Leerzeichen sind nur zur Lesbarkeit angegeben und sollten im tatsächlichen String nicht vorhanden sein):
YYYY-MM-DD T HH:mm:ss.sssssssss Z/±HH:mm
YYYY
-
Entweder eine vierstellige Zahl oder eine sechsstellige Zahl mit einem
+
oder-
Zeichen. MM
-
Eine zweistellige Zahl von
01
bis12
. DD
-
Eine zweistellige Zahl von
01
bis31
. DieYYYY
,MM
, undDD
Komponenten können durch-
oder durch nichts getrennt werden. T
-
Der Datums-Zeit-Trenner, der
T
,t
oder ein Leerzeichen sein kann. HH
-
Eine zweistellige Zahl von
00
bis23
. mm
Optional-
Eine zweistellige Zahl von
00
bis59
. Standardmäßig00
. ss.sssssssss
Optional-
Eine zweistellige Zahl von
00
bis59
. Kann optional von einem.
oder,
gefolgt und von eins bis neun Ziffern ergänzt werden. Standardmäßig00
. DieHH
,mm
undss
Komponenten können durch:
oder durch nichts getrennt werden. Sie können entweder nurss
oder sowohlss
als auchmm
weglassen, sodass die Zeit eine von drei Formen annehmen kann:HH
,HH:mm
oderHH:mm:ss.sssssssss
. Z/±HH:mm
-
Entweder der UTC-Bezeichner
Z
oderz
, oder eine Abweichung von UTC in Form von+
oder-
gefolgt vom gleichen Format wie die Zeitkomponente. Beachten Sie, dass Subminuten-Präzision (:ss.sssssssss
) von anderen Systemen möglicherweise nicht unterstützt wird und akzeptiert, aber nie ausgegeben wird. Wenn eine Abweichung angegeben wird, wird die Zeit in der angegebenen Abweichung interpretiert.
Als Eingabe können Sie optional die Zeitzonenkennung und den Kalender im gleichen Format wie ZonedDateTime
angeben, aber sie werden ignoriert. Andere Annotationen im [key=value]
Format werden ebenfalls ignoriert und dürfen nicht das kritische Flag haben.
Beim Serialisieren können Sie die Bruchteile der Sekunde und die Abweichung festlegen.
Konstruktor
Temporal.Instant()
Experimentell-
Erstellt ein neues
Temporal.Instant
Objekt, indem die zugrundeliegenden Daten direkt bereitgestellt werden.
Statische Methoden
Temporal.Instant.compare()
Experimentell-
Gibt eine Zahl (-1, 0 oder 1) zurück, die angibt, ob das erste Instant vor, gleichzeitig mit oder nach dem zweiten Instant kommt. Entspricht dem Vergleich der
epochNanoseconds
der beiden Instants. Temporal.Instant.from()
Experimentell-
Erstellt ein neues
Temporal.Instant
Objekt aus einem anderenTemporal.Instant
Objekt oder einem RFC 9557 String. Temporal.Instant.fromEpochMilliseconds()
Experimentell-
Erstellt ein neues
Temporal.Instant
Objekt aus der Anzahl der Millisekunden seit der Unix-Epoche (Mitternacht zu Beginn des 1. Januar 1970, UTC). Temporal.Instant.fromEpochNanoseconds()
Experimentell-
Erstellt ein neues
Temporal.Instant
Objekt aus der Anzahl der Nanosekunden seit der Unix-Epoche (Mitternacht zu Beginn des 1. Januar 1970, UTC).
Instanz-Eigenschaften
Diese Eigenschaften sind auf Temporal.Instant.prototype
definiert und werden von allen Temporal.Instant
Instanzen geteilt.
Temporal.Instant.prototype.constructor
-
Die Konstruktorfunktion, die das Instanzobjekt erstellt hat. Für
Temporal.Instant
Instanzen ist der anfängliche Wert derTemporal.Instant()
Konstruktor. Temporal.Instant.prototype.epochMilliseconds
Experimentell-
Gibt eine ganze Zahl zurück, die die Anzahl der seit der Unix-Epoche (Mitternacht zu Beginn des 1. Januar 1970, UTC) verstrichenen Millisekunden bis zu diesem Instant darstellt. Entspricht dem Dividieren von
epochNanoseconds
durch1e6
und dem Abrunden. Temporal.Instant.prototype.epochNanoseconds
Experimentell-
Gibt einen
BigInt
zurück, der die Anzahl der seit der Unix-Epoche (Mitternacht zu Beginn des 1. Januar 1970, UTC) verstrichenen Nanosekunden bis zu diesem Instant darstellt. Temporal.Instant.prototype[Symbol.toStringTag]
-
Der Anfangswert der
[Symbol.toStringTag]
Eigenschaft ist der String"Temporal.Instant"
. Diese Eigenschaft wird inObject.prototype.toString()
verwendet.
Instanz-Methoden
Temporal.Instant.prototype.add()
Experimentell-
Gibt ein neues
Temporal.Instant
Objekt zurück, das diesen Instant um eine gegebene Dauer (in einer Form, die vonTemporal.Duration.from()
konvertierbar ist) verschoben darstellt. Temporal.Instant.prototype.equals()
Experimentell-
Gibt
true
zurück, wenn dieser Instant wertmäßig einem anderen Instant entspricht (in einer Form, die vonTemporal.Instant.from()
konvertierbar ist), und sonstfalse
. Sie werden durch ihre Epochen-Nanosekunden verglichen. EntsprichtTemporal.Instant.compare(this, other) === 0
. Temporal.Instant.prototype.round()
Experimentell-
Gibt ein neues
Temporal.Instant
Objekt zurück, das diesen Instant auf die gegebene Einheit gerundet darstellt. Temporal.Instant.prototype.since()
Experimentell-
Gibt ein neues
Temporal.Duration
Objekt zurück, das die Dauer von einem anderen Instant (in einer Form, die vonTemporal.Instant.from()
konvertierbar ist) bis zu diesem Instant darstellt. Die Dauer ist positiv, wenn der andere Instant vor diesem Instant ist, und negativ, wenn danach. Temporal.Instant.prototype.subtract()
Experimentell-
Gibt ein neues
Temporal.Instant
Objekt zurück, das diesen Instant um eine gegebene Dauer (in einer Form, die vonTemporal.Duration.from()
konvertierbar ist) verschoben darstellt. Temporal.Instant.prototype.toJSON()
Experimentell-
Gibt einen String zurück, der diesen Instant im selben RFC 9557 Format wie der Aufruf von
toString()
darstellt. Soll implizit vonJSON.stringify()
aufgerufen werden. Temporal.Instant.prototype.toLocaleString()
Experimentell-
Gibt einen String mit einer sprachsensitiven Darstellung dieses Instants zurück. In Implementierungen mit Unterstützung für die
Intl.DateTimeFormat
API delegiert diese Methode anIntl.DateTimeFormat
. Temporal.Instant.prototype.toString()
Experimentell-
Gibt einen String zurück, der diesen Instant im RFC 9557 Format im angegebenen Zeitbereich darstellt.
Temporal.Instant.prototype.toZonedDateTimeISO()
Experimentell-
Gibt ein neues
Temporal.ZonedDateTime
Objekt zurück, das diesen Instant in der angegebenen Zeitzone unter Verwendung des ISO 8601 Kalendersystems darstellt. Temporal.Instant.prototype.until()
Experimentell-
Gibt ein neues
Temporal.Duration
Objekt zurück, das die Dauer von diesem Instant zu einem anderen Instant (in einer Form, die vonTemporal.Instant.from()
konvertierbar ist) darstellt. Die Dauer ist positiv, wenn der andere Instant nach diesem Instant liegt, und negativ, wenn vorher. Temporal.Instant.prototype.valueOf()
Experimentell-
Wirft einen
TypeError
, der verhindert, dassTemporal.Instant
Instanzen bei arithmetischen oder Vergleichsoperationen implizit in primitive Werte konvertiert werden.
Spezifikationen
Specification |
---|
Temporal proposal # sec-temporal-instant-objects |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubLegend
Tip: you can click/tap on a cell for more information.
- In development. Supported in a pre-release version.
- In development. Supported in a pre-release version.
- No support
- No support
- Experimental. Expect behavior to change in the future.
- See implementation notes.
- User must explicitly enable this feature.