Share via


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
派生
属性
实现

注解

用于组织和标识日期的日历系统。

main日期和时间 API 基于 ISO 日历系统构建。 年表在后台运行,以表示日历系统的一般概念。 例如,日本、明国、泰国佛教等。

大多数其他日历系统也基于年、月和日的共同概念运行,这些概念与围绕太阳的地球周期和围绕地球的月亮有关。 这些共享概念由 ChronoField 定义,可供任何 Chronology 实现使用:

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

如图所示,尽管日期对象位于不同的日历系统中(由不同的 Chronology 实例表示),但两者都可以使用 上的 ChronoField同一常量进行查询。 有关其含义的完整讨论,请参阅 ChronoLocalDate。 一般情况下,建议使用已知的基于 LocalDateISO 的 ,而不是 ChronoLocalDate

Chronology虽然 对象通常使用 ChronoField 并基于日期的纪元、纪元年、年月、月日模型,但这不是必需的。 Chronology实例可能表示完全不同的日历系统,例如 Mayan。

实际上, Chronology 实例还充当工厂。 方法 #of(String) 允许按标识符查找实例,而 #ofLocale(Locale) 方法允许按区域设置查找。

实例 Chronology 提供一组用于创建 ChronoLocalDate 实例的方法。 日期类用于操作特定日期。 <ul><li>#dateNow() dateNow()<li><#dateNow(Clock) dateNow(clock)li li>#dateNow(ZoneId) dateNow(zone)><<#date(int, int, int) date(yearProleptic, month, day)li li#date(Era, int, int, int) date(era, yearOfEra, month, day)<>li li<#dateYearDay(int, int) dateYearDay(yearProleptic, dayOfYear)>li<>#dateYearDay(Era, int, int) dateYearDay(era, yearOfEra, dayOfYear)li>#date(TemporalAccessor) date(TemporalAccessor)</ul>

<h2 id=“addcalendars”>添加新日历</h2> 应用程序可以扩展可用年表集。 添加新日历系统需要编写 、 ChronoLocalDateEraChronology实现。 特定于日历系统的大多数逻辑将在 实现中 ChronoLocalDate 。 实现 Chronology 充当工厂。

若要允许发现其他时间顺序, java.util.ServiceLoader ServiceLoader 请使用 。 必须将名为“java.time.chrono.Chronology”的文件添加到 META-INF/services 目录中,其中列出了实现类。 有关服务加载的更多详细信息,请参阅 ServiceLoader。 对于按 id 或 calendarType 查找,首先找到系统提供的日历,然后找到应用程序提供的日历。

每个年表必须定义一个在系统中唯一的年表 ID。 如果年表表示 CLDR 规范定义的日历系统,则日历类型是 CLDR 类型串联,如果适用,则 CLDR 变体是串联。

在 1.8 中添加。

java.time.chrono.ChronologyJava 文档。

此页面的某些部分是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的条款使用。

属性

AvailableChronologies

返回可用的时间顺序。

CalendarType

用于组织和标识日期的日历系统。

Handle

获取基础 Android 对象的 JNI 值。

(继承自 IJavaObject)
Id

用于组织和标识日期的日历系统。

JniIdentityHashCode

返回包装实例的 的值 java.lang.System.identityHashCode()

(继承自 IJavaPeerable)
JniManagedPeerState

托管对等方的状态。

(继承自 IJavaPeerable)
JniPeerMembers

成员访问和调用支持。

(继承自 IJavaPeerable)
PeerReference

返回 JniObjectReference 包装的 Java 对象实例的 。

(继承自 IJavaPeerable)

方法

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)

ChronoZonedDateTimeInstant获取此年表中的 。

ZonedDateTime(ITemporalAccessor)

从另一个 ChronoZonedDateTime 时态对象获取此年表中的 。

扩展方法

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

用于组织和标识日期的日历系统。

GetJniTypeName(IJavaPeerable)

用于组织和标识日期的日历系统。

适用于