語言

IChronology 介面

定義

一種用來組織和辨識日期的日曆系統。

[Android.Runtime.Register("java/time/chrono/Chronology", "", "Java.Time.Chrono.IChronologyInvoker", ApiSince=26)]
public interface IChronology : IDisposable, Java.Interop.IJavaPeerable, Java.Lang.IComparable
[<Android.Runtime.Register("java/time/chrono/Chronology", "", "Java.Time.Chrono.IChronologyInvoker", ApiSince=26)>]
type IChronology = interface
    interface IComparable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
衍生
屬性
實作

備註

一種用來組織和辨識日期的日曆系統。

主要的日期與時間 API 是建立在 ISO 日曆系統之上。 年表在幕後運作,代表曆法系統的一般概念。 例如日本人、閩國、泰國佛教等。

大多數其他曆法系統也基於年、月、日的共同概念運作,這些概念與地球繞太陽及月亮繞地球的週期相連結。 這些共享概念由以下實作定義 ChronoField ,並可供任何 Chronology 實作使用:

LocalDate isoDate = ...
              ThaiBuddhistDate thaiDate = ...
              int isoYear = isoDate.get(ChronoField.YEAR);
              int thaiYear = thaiDate.get(ChronoField.YEAR);

如圖所示,雖然日期物件位於不同的曆法系統中,且由不同的Chronology實例表示,但兩者都可以使用相同的常數查詢。ChronoField 關於此意涵的完整討論,請參見 ChronoLocalDate。 一般建議使用已知的ISO基礎 LocalDate,而非 ChronoLocalDate。

雖然 Chronology 物件通常使用 ChronoField 且基於日期的年份、年份、月份、日期模型,但這並非必要條件。 一個 Chronology 例子可能代表完全不同的曆法系統,例如瑪雅曆法。

實際上,實 Chronology 例同時也扮演工廠的角色。 此 #of(String) 方法允許以識別碼查詢實例,而該 #ofLocale(Locale) 方法則允許依地點查詢。

實 Chronology 例提供一組建立 ChronoLocalDate 實例的方法。 日期類別用來操作特定的日期。 <烏爾><李>#dateNow() dateNow()<李>#dateNow(Clock) dateNow(clock)<李>#dateNow(ZoneId) dateNow(zone)<李>#date(int, int, int) date(yearProleptic, month, day)<李>#date(Era, int, int, int) date(era, yearOfEra, month, day)<李 李>#dateYearDay(int, int) dateYearDay(yearProleptic, dayOfYear)<李 李>#dateYearDay(Era, int, int) dateYearDay(era, yearOfEra, dayOfYear)<李 / UL>#date(TemporalAccessor) date(TemporalAccessor)<>

<h2 id=「addcalendars」>新增日曆</h2> 可用時間軸集合可透過應用程式擴充。 新增曆法系統需撰寫 、 和 ChronologyChronoLocalDate的實作Era。 大部分針對日曆系統的邏輯都會在 ChronoLocalDate 實作中。 Chronology實作就像工廠一樣。

為了方便發現更多時間順序,使用了 。java.util.ServiceLoader ServiceLoader 必須在目錄中新增 META-INF/services 一個名為 'java.time.chrono.Chronology' 的檔案,列出實作類別。 更多服務載入的細節請參見 ServiceLoader。 若以 id 或 calendarType 查詢,系統提供的日曆會先找到,接著是應用程式提供的日曆。

每個時間軸必須定義一個在系統內唯一的時間軸 ID。 若年表代表由 CLDR 規範定義的日曆系統,則日曆類型為 CLDR 類型與(如適用)CLDR 變體的串接。

新增於1.8版本。

Java 文件 java.time.chrono.Chronology。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

屬性

名稱 Description
AvailableChronologies

回傳可用的時間軸。

CalendarType

取得日曆系統的行事曆類型。

Handle

取得底層 Android 物件的 JNI 值。

(繼承來源 IJavaObject)
Id

取得時間順序的ID。

IsIsoBased

檢查這個時間軸是否基於 ISO 的。

JniIdentityHashCode

回傳包裹實例的 java.lang.System.identityHashCode() 值。

(繼承來源 IJavaPeerable)
JniManagedPeerState

管理貴族的狀況。

(繼承來源 IJavaPeerable)
JniObjectReferenceControlBlock

一種用來組織和辨識日期的日曆系統。

(繼承來源 IJavaPeerable)
JniPeerMembers

成員存取與召喚支援。

(繼承來源 IJavaPeerable)
PeerReference

回傳JniObjectReference包裹後的 Java 物件實例。

(繼承來源 IJavaPeerable)

方法

名稱 Description
CompareTo(IChronology)

將此時間軸與另一年表進行比較。

CompareTo(Object)

將此物件與指定的物件比較排序。

(繼承來源 IComparable)
Date(IEra, Int32, Int32, Int32)

從時代、年代、月份及月份欄位中取得本地日期。

Date(Int32, Int32, Int32)

可從預言年、月份及月份欄位中獲得本地日期。

Date(ITemporalAccessor)

從另一個時間物件獲得此年代的當地日期。

DateEpochDay(Int64)

此時間軸中以紀元日期為準。

DateNow()

從系統時鐘在預設時區取得此時間序列中的當前當地日期。

DateNow(Clock)

從指定的時鐘取得此時間序列中的當前當地日期。

DateNow(ZoneId)

從指定時區的系統時鐘取得此時間序列中的當前當地日期。

DateYearDay(IEra, Int32, Int32)

可從時代、年中年及年份欄位中獲得當地日期。

DateYearDay(Int32, Int32)

從預言年和年份日期欄位中獲得本地日期。

Disposed()

當實例被處理後才被召喚。

(繼承來源 IJavaPeerable)
DisposeUnlessReferenced()

如果沒有未解決的參考資料,則 Dispose()呼叫;否則,則不做任何事。

(繼承來源 IJavaPeerable)
EpochSecond(IEra, Int32, Int32, Int32, Int32, Int32, Int32, ZoneOffset)

取得1970-01-01T00:00:00Z的秒數。

EpochSecond(Int32, Int32, Int32, Int32, Int32, Int32, ZoneOffset)

取得1970-01-01T00:00:00Z的秒數。

Equals(Object)

檢查此時間順序是否與其他時間順序相等。

EraOf(Int32)

從數值建立年代時代物件。

Eras()

取得時代列表以按時間順序排列。

Finalized()

當實例完成後才會被通知。

(繼承來源 IJavaPeerable)
From(ITemporalAccessor)

從一個時間對象獲得一個 Chronology 實例。

GetDisplayName(TextStyle, Locale)

獲得了這個時間順序的文字呈現。

GetHashCode()

這是這個時間順序的雜湊碼。

IsLeapYear(Int64)

檢查指定的年份是否為閏年。

LocalDateTime(ITemporalAccessor)

從另一個時間物件獲取此時間序列中的局部日期時間。

Of(String)

從時間順序 ID 或行事曆系統類型中取得 的 Chronology 實例。

OfLocale(Locale)

從某個地點取得一個 Chronology 實例。

Period(Int32, Int32, Int32)

根據年份、月份和天數來計算這個時間軸。

ProlepticYear(IEra, Int32)

計算給定紀元及年數的預定年。

Range(ChronoField)

取得指定欄位的有效值範圍。

ResolveDate(IDictionary<ITemporalField,Long>, ResolverStyle)

在解析過程中,將解析後 ChronoField 的值解析成日期。

SetJniIdentityHashCode(Int32)

將回傳的值設為 JniIdentityHashCode。

(繼承來源 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

一種用來組織和辨識日期的日曆系統。

(繼承來源 IJavaPeerable)
SetPeerReference(JniObjectReference)

將回傳的值設為 PeerReference。

(繼承來源 IJavaPeerable)
ToString()

會將此時間順序輸出為 String。

UnregisterFromRuntime()

取消註冊此實例,讓執行時不會在未來 Java.Interop.JniRuntime+JniValueManager.PeekValue 的呼叫中回傳該實例。

(繼承來源 IJavaPeerable)
ZonedDateTime(Instant, ZoneId)

在此時間軸中, ChronoZonedDateTime 從 Instant得到 。

ZonedDateTime(ITemporalAccessor)

在此時間軸中,從另一個時間對象獲得 a ChronoZonedDateTime 。

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

一種用來組織和辨識日期的日曆系統。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於