Temporal.Instant

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Đối tượng Temporal.Instant biểu diễn một điểm duy nhất trong thời gian, với độ chính xác nano giây. Về cơ bản, nó được biểu diễn như là số nano giây kể từ epoch Unix (nửa đêm đầu ngày 1 tháng 1 năm 1970, UTC), không có múi giờ hay hệ thống lịch nào.

Mô tả

Temporal.Instant về mặt ngữ nghĩa giống như Date. Cả hai đều đóng gói một điểm duy nhất trong thời gian, nhưng Temporal.Instant chính xác hơn vì nó lưu trữ nano giây thay vì mili giây. Temporal.Instant cũng tránh các bẫy của Date vì nó không giả định bất kỳ thông tin lịch hay múi giờ nào — nếu bạn muốn đọc bất kỳ thông tin ngày hoặc giờ nào như năm hoặc tháng, bạn cần chuyển đổi nó sang Temporal.ZonedDateTime trước, sử dụng toZonedDateTimeISO().

Bạn có thể chuyển đổi từ Date sang Temporal.Instant bằng phương thức Date.prototype.toTemporalInstant(), phương thức này nên được ưu tiên hơn các phương thức khác như Temporal.Instant.fromEpochMilliseconds() vì phương thức trước liên quan đến ít mã người dùng hơn và có thể được tối ưu hóa hơn. Bạn cũng có thể chuyển đổi từ Temporal.Instant sang Date bằng epoch mili giây của nó, chẳng hạn như new Date(instant.epochMilliseconds).

Định dạng RFC 9557

Các đối tượng Instant có thể được tuần tự hóa và phân tích cú pháp bằng định dạng RFC 9557, một phần mở rộng của định dạng ISO 8601 / RFC 3339. Chuỗi có dạng sau (khoảng trắng chỉ để dễ đọc và không nên có mặt trong chuỗi thực tế):

YYYY-MM-DD T HH:mm:ss.sssssssss Z/±HH:mm
YYYY

Một số bốn chữ số, hoặc một số sáu chữ số với dấu + hoặc -.

MM

Một số hai chữ số từ 01 đến 12.

DD

Một số hai chữ số từ 01 đến 31. Các thành phần YYYY, MMDD có thể được phân tách bằng - hoặc không có gì.

T

Dấu phân tách ngày-giờ, có thể là T, t, hoặc dấu cách.

HH

Một số hai chữ số từ 00 đến 23.

mm Optional

Một số hai chữ số từ 00 đến 59. Mặc định là 00.

ss.sssssssss Optional

Một số hai chữ số từ 00 đến 59. Có thể tùy chọn theo sau là . hoặc , và một đến chín chữ số. Mặc định là 00. Các thành phần HH, mmss có thể được phân tách bằng : hoặc không có gì. Bạn có thể bỏ qua chỉ ss hoặc cả ssmm, vì vậy thời gian có thể ở một trong ba dạng: HH, HH:mm, hoặc HH:mm:ss.sssssssss.

Z/±HH:mm

Ký hiệu UTC Z hoặc z, hoặc độ lệch từ UTC theo dạng + hoặc - theo sau bởi cùng định dạng như thành phần thời gian. Lưu ý rằng độ chính xác dưới phút (:ss.sssssssss) có thể không được các hệ thống khác hỗ trợ, và được chấp nhận nhưng không bao giờ được xuất ra. Nếu độ lệch được cung cấp, thời gian được diễn giải theo độ lệch được chỉ định.

Khi nhập, bạn có thể tùy chọn bao gồm định danh múi giờ và lịch, theo cùng định dạng như ZonedDateTime, nhưng chúng sẽ bị bỏ qua. Các chú thích khác ở định dạng [key=value] cũng bị bỏ qua, và chúng không được có cờ critical.

Khi tuần tự hóa, bạn có thể cấu hình chữ số giây phân số và độ lệch.

Constructor

Temporal.Instant() Experimental

Tạo một đối tượng Temporal.Instant mới bằng cách cung cấp trực tiếp dữ liệu cơ bản.

Phương thức tĩnh

Temporal.Instant.compare()

Trả về một số (-1, 0, hoặc 1) cho biết instant đầu tiên đến trước, bằng, hoặc sau instant thứ hai. Tương đương với việc so sánh epochNanoseconds của hai instant.

Temporal.Instant.from()

Tạo một đối tượng Temporal.Instant mới từ đối tượng Temporal.Instant khác, hoặc một chuỗi RFC 9557.

Temporal.Instant.fromEpochMilliseconds()

Tạo một đối tượng Temporal.Instant mới từ số mili giây kể từ epoch Unix (nửa đêm đầu ngày 1 tháng 1 năm 1970, UTC).

Temporal.Instant.fromEpochNanoseconds()

Tạo một đối tượng Temporal.Instant mới từ số nano giây kể từ epoch Unix (nửa đêm đầu ngày 1 tháng 1 năm 1970, UTC).

Thuộc tính thực thể

Các thuộc tính này được định nghĩa trên Temporal.Instant.prototype và được chia sẻ bởi tất cả các thực thể Temporal.Instant.

Temporal.Instant.prototype.constructor

Hàm constructor đã tạo đối tượng thực thể. Đối với các thực thể Temporal.Instant, giá trị ban đầu là constructor Temporal.Instant().

Temporal.Instant.prototype.epochMilliseconds

Trả về một số nguyên biểu diễn số mili giây đã trôi qua kể từ epoch Unix (nửa đêm đầu ngày 1 tháng 1 năm 1970, UTC) đến instant này. Tương đương với việc chia epochNanoseconds cho 1e6 và làm tròn xuống.

Temporal.Instant.prototype.epochNanoseconds

Trả về một BigInt biểu diễn số nano giây kể từ epoch Unix (nửa đêm đầu ngày 1 tháng 1 năm 1970, UTC) đến instant này.

Temporal.Instant.prototype[Symbol.toStringTag]

Giá trị ban đầu của thuộc tính [Symbol.toStringTag] là chuỗi "Temporal.Instant". Thuộc tính này được sử dụng trong Object.prototype.toString().

Phương thức thực thể

Temporal.Instant.prototype.add()

Trả về một đối tượng Temporal.Instant mới biểu diễn instant này tiến về phía trước một khoảng thời gian nhất định (ở dạng có thể chuyển đổi bằng Temporal.Duration.from()).

Temporal.Instant.prototype.equals()

Trả về true nếu instant này tương đương về giá trị với một instant khác (ở dạng có thể chuyển đổi bằng Temporal.Instant.from()), và false nếu không. Chúng được so sánh bằng epoch nano giây của chúng. Tương đương với Temporal.Instant.compare(this, other) === 0.

Temporal.Instant.prototype.round()

Trả về một đối tượng Temporal.Instant mới biểu diễn instant này được làm tròn đến đơn vị đã cho.

Temporal.Instant.prototype.since()

Trả về một đối tượng Temporal.Duration mới biểu diễn khoảng thời gian từ một instant khác (ở dạng có thể chuyển đổi bằng Temporal.Instant.from()) đến instant này. Khoảng thời gian là dương nếu instant kia trước instant này, và âm nếu sau.

Temporal.Instant.prototype.subtract()

Trả về một đối tượng Temporal.Instant mới biểu diễn instant này lùi về phía sau một khoảng thời gian nhất định (ở dạng có thể chuyển đổi bằng Temporal.Duration.from()).

Temporal.Instant.prototype.toJSON()

Trả về một chuỗi biểu diễn instant này theo cùng định dạng RFC 9557 như khi gọi toString(). Được thiết kế để được gọi ngầm định bởi JSON.stringify().

Temporal.Instant.prototype.toLocaleString()

Trả về một chuỗi với biểu diễn phụ thuộc ngôn ngữ của instant này. Trong các triển khai có hỗ trợ API Intl.DateTimeFormat, phương thức này ủy quyền cho Intl.DateTimeFormat.

Temporal.Instant.prototype.toString()

Trả về một chuỗi biểu diễn instant này theo định dạng RFC 9557 sử dụng múi giờ được chỉ định.

Temporal.Instant.prototype.toZonedDateTimeISO()

Trả về một đối tượng Temporal.ZonedDateTime mới biểu diễn instant này theo múi giờ được chỉ định sử dụng hệ thống lịch ISO 8601.

Temporal.Instant.prototype.until()

Trả về một đối tượng Temporal.Duration mới biểu diễn khoảng thời gian từ instant này đến một instant khác (ở dạng có thể chuyển đổi bằng Temporal.Instant.from()). Khoảng thời gian là dương nếu instant kia sau instant này, và âm nếu trước.

Temporal.Instant.prototype.valueOf()

Ném một TypeError, ngăn chặn các thực thể Temporal.Instant bị chuyển đổi ngầm định sang kiểu nguyên thủy khi được sử dụng trong các phép tính số học hoặc so sánh.

Đặc tả

Specification
Temporal
# sec-temporal-instant-objects

Tương thích trình duyệt

Xem thêm