接口 | 描述 |
---|---|
Temporal |
定义对时间对象的读写访问的框架级接口,例如日期,时间,偏移或这些的一些组合。
|
TemporalAccessor |
框架级接口定义对时间对象的只读访问,例如日期,时间,偏移或这些的某些组合。
|
TemporalAdjuster |
调整时间对象的策略。
|
TemporalAmount |
定义一段时间的框架级界面,如“6小时”,“8天”或“2年3个月”。
|
TemporalField |
日期时间的字段,如月份或小时。
|
TemporalQuery<R> |
查询时间对象的策略。
|
TemporalUnit |
日期时间单位,如天数或小时数。
|
类 | 描述 |
---|---|
IsoFields |
特定于ISO-8601日历系统的领域和单位,包括季度和周年。
|
JulianFields |
提供访问朱利安日的一组日期字段。
|
TemporalAdjusters |
常用和有用的TemporalAdjusters。
|
TemporalQueries |
TemporalQuery的
TemporalQuery 。
|
ValueRange |
日期时间字段的有效值的范围。
|
WeekFields |
星期几,星期周和周末字段的本地化定义。
|
Enum | 描述 |
---|---|
ChronoField |
一套标准的字段。
|
ChronoUnit |
一组标准的日期单位。
|
异常 | 描述 |
---|---|
UnsupportedTemporalTypeException |
UnsupportedTemporalTypeException表示Temporal类不支持ChronoField或ChronoUnit。
|
使用字段和单位访问日期和时间,以及日期时间调整器。
该包扩展在基础包上,为更强大的用例提供附加功能。 支持包括:
日期和时间用字段和单位来表示。 一个单位用来衡量一段时间,例如年,日或分钟。 所有单位实施TemporalUnit
。 这套知名单位在ChronoUnit
中定义,如DAYS
。 单元接口设计为允许应用定义单元。
一个字段用于表示较大日期时间的一部分,例如年份,月份或秒数。 所有字段实现TemporalField
。 一系列众所周知的领域定义在ChronoField
中 ,如HOUR_OF_DAY
。 附加字段由定义JulianFields
, WeekFields
和IsoFields
。 字段界面旨在允许应用程序定义的字段。
该软件包提供了一些工具,可以以最适合框架的一般方式访问日期和时间的单位和字段。 Temporal
提供了支持字段的日期时间类型的抽象。 它的方法支持获取一个字段的值,创建一个修改字段的值的新的日期时间,并查询通常用于提取偏移量或时区的其他信息。
应用程序代码中的一个字段的使用是检索没有方便方法的字段。 例如,获取月份是很常见的,因为LocalDate
有一个名为getDayOfMonth()
的方法。 然而,对于更不寻常的领域,有必要使用该领域。 例如, date.get(ChronoField.ALIGNED_WEEK_OF_MONTH)
。 这些字段还提供对有效值范围的访问。
日期时间问题空间的关键部分是将日期调整为新的相关值,例如“月的最后一天”或“下周三”。 这些被建模为调整基准日期时间的函数。 功能实现TemporalAdjuster
并在Temporal
上Temporal
。 TemporalAdjusters
提供了一组常用功能 。 例如,要查找给定日期后的星期几的第一次出现,请使用TemporalAdjusters.next(DayOfWeek)
,例如date.with(next(MONDAY))
。 应用程序还可以通过实现TemporalAdjuster
来定义调整器 。
TemporalAmount
界面模型的相对时间量。
除了调整日期时间之外,还提供了一个界面,以便通过TemporalQuery
进行查询。 查询界面最常用的方法是方法引用。 主要课程的from(TemporalAccessor)
方法都可以使用,如LocalDate::from
或Month::from
。 在TemporalQueries
中提供了进一步的实现方式作为静态方法。 应用程序还可以通过实现TemporalQuery
定义查询。
不同的地方有一周不同的定义。 例如,在欧洲,这个星期通常从星期一开始,而在美国,它从星期天开始。 WeekFields
类模特这个区别。
ISO日历系统定义了一个额外的基于星期的年份划分。 这定义了整个星期一至星期一的一年。 这是建模在IsoFields
。
除非另有说明,否则在此包中的任何类或接口中将null参数传递给构造函数或方法将导致抛出NullPointerException
。 Javadoc“@param”定义用于总结空行为。 “@throws NullPointerException
”没有在每个方法中明确记录。
所有计算应检查数字溢出,并抛出一个ArithmeticException
或DateTimeException
。