介紹
- java.time.Instant
- 類聲明
@jdk.internal.ValueBased
public final class Instant implements Temporal, TemporalAdjuster, Comparable<Instant>, Serializable
- 時間線上的一個瞬時點,可以理解成時刻
- 被稱爲“新紀元”的時間線原點被設置爲穿過倫敦格林威治皇家天文臺的本初子午線所處時區的 1970 年 1 月 1 日的午夜
- 存儲了一個代表紀元秒的long整型 (
seconds
) 和一個int納秒的整型 (nanos
) - Java API 定義了自己的時間尺度,即 Java Time-Scale ,使用 JSR-310 API
- 不可變,線程安全
- 實現
Temporal
,支持的時間單位(TemporalUnit
)有- NANOS
- MICROS
- MILLIS
- SECONDS
- MINUTES
- HOURS
- HALF_DAYS
- DAYS
- 實現
TemporalAccessor
,支持的時間域(TemporalField
)有- NANO_OF_SECOND
- MICRO_OF_SECOND
- MILLI_OF_SECOND
- INSTANT_SECONDS
- 類似於
java.util.Date
,通過toInstant
和from
相互轉換
API
常量字段
- EPOCH : 1970-01-01T00:00:00Z
- 紀元時刻
- MIN : -1000000000-01-01T00:00:00Z
- 支持的最小 Instant
- MAX : +1000000000-12-31T23:59:59.999999999Z
- 支持的最大 Instant
static
- now
Instant now()
Instant now(Clock clock)
- 從系統時鐘獲取當前時刻,這將查詢 system UTC clock 以獲取當前時刻
- from
Instant from(TemporalAccessor temporal)
- 轉換爲
Instant
- ofEpochMilli
Instant ofEpochMilli(long epochMilli)
- 使用毫秒獲取Instant
- ofEpochSecond
Instant ofEpochSecond(long epochSecond)
Instant ofEpochSecond(long epochSecond, long nanoAdjustment)
- 使用秒數獲取Instant
- parse
Instant parse(final CharSequence text)
- 反
toString
- 格式示例:
2023-06-29T10:07:34.814427100Z
public
-
getEpochSecond
seconds
-
getNano
nanos
-
atOffset
- 將此時刻與偏移量相結合以創建
OffsetDateTime
- 將此時刻與偏移量相結合以創建
-
atZone
- 將此時刻與時區結合起來創建
ZonedDateTime
- 將此時刻與時區結合起來創建
-
isAfter
-
isBefore
-
toEpochMilli
- 將此時刻轉換爲從 1970-01-01T00:00:00Z 紀元開始的毫秒數
-
truncatedTo
- 截斷
-
toString
- ISO-8601 表示形式
- 格式示例:
2023-06-29T10:07:34.814427100Z
算數計算
- minus
- minusMillis
- minusNanos
- minusSeconds
- plus
- plusMillis
- plusNanos
- plusSeconds