語言

ZonedDateTime.Until(ITemporal, ITemporalUnit) 方法

定義

以指定單位計算到下一個日期時間的時間。

[Android.Runtime.Register("until", "(Ljava/time/temporal/Temporal;Ljava/time/temporal/TemporalUnit;)J", "", ApiSince=26)]
public long Until(Java.Time.Temporal.ITemporal? endExclusive, Java.Time.Temporal.ITemporalUnit? unit);
[<Android.Runtime.Register("until", "(Ljava/time/temporal/Temporal;Ljava/time/temporal/TemporalUnit;)J", "", ApiSince=26)>]
abstract member Until : Java.Time.Temporal.ITemporal * Java.Time.Temporal.ITemporalUnit -> int64
override this.Until : Java.Time.Temporal.ITemporal * Java.Time.Temporal.ITemporalUnit -> int64

參數

endExclusive
ITemporal

結束日期,排他性,轉換成 ZonedDateTime,而非 null

unit
ITemporalUnit

用來測量量的單位,而非零

傳回

此日期-時間點與結束-日期時間之間的時間長度

實作

屬性

備註

以指定單位計算到下一個日期時間的時間。 此系統以單一 TemporalUnit 計算兩個 ZonedDateTime 物件之間的時間長短。 起點與終點分別是這個和指定的日期時間。 如果結束時間在開始之前,結果將為負。 例如,兩個日期時間之間的天數可以用 startDateTime.until(endDateTime, DAYS) 計算。 傳遞給此方法的時間會使用 from(TemporalAccessor) 轉換成 ZonedDateTime。 若兩個分區日期時間的時區不同,則指定的結束日期時間會標準化為與該日期時間相同的區域。 計算回傳一個整數,代表兩個日期時間之間的完整單位數。 例如,2012-06-15T00:00Z 到 2012-08-14T23:59Z 之間的月份長度只會是一個月,因為距離兩個月差一分鐘。 使用此方法有兩種等效方式。 第一是啟動此方法。 第二種是使用 TemporalUnit.between(Temporal, Temporal):選擇應該根據哪種方式讓程式碼更易讀來決定。 此計算即以此方法實作於 ChronoUnit。 支援的單位包括NANOS、MICROS、MILLIS、SECONDS、MINUTES、HOUR 和 HALF_DAYS、DAYS、WEEKS、MONTHSS、YEARS、DECADES、CENTURIES、MILLENNIA 和 ERAS。 其他 ChronoUnit 的值會拋出例外。 日期與時間單位的計算方式有所不同。 日期單位則在當地時間軸上運作,使用當地日期時間。 例如,從第1天中午到隔天中午的天數,無論是否有夏令時間變更,都將被計算為恰好一天。 時間單位在即時時間軸上運作。 計算實際上將兩個分區日期時間轉換為瞬間,然後計算時間間的週期。 例如,從第一天中午到隔天中午的時數,可能是23、24或25小時(或其他時間),視是否有夏令時間變更而定。 若該單位不是 ChronoUnit,則透過呼叫 TemporalUnit.between(Temporal, Temporal),將此作為第一個參數,將轉換後的 temporal 輸入作為第二個參數來得到。 此實例是不可變且不受此方法呼叫影響的。

Java 參考 java.time.ZonedDateTime.until

適用於