Package java.time.temporal
使用字段和单位访问日期和时间,以及日期时间调整器。
该包扩展在基础包上,为更强大的用例提供附加功能。 支持包括:
- 日期时间单位,如年,月,日,小时
- 日期时间的字段,如月份,星期几或小时
- 日期时间调整功能
- 周的不同定义
领域和单位
日期和时间用字段和单位来表示。 一个单位用来衡量一段时间,例如年,日或分钟。 所有单位实施TemporalUnit
。 众所周知的单位集合在ChronoUnit
中定义,如DAYS
。 单元接口设计为允许应用定义单元。
一个字段用于表示较大日期时间的一部分,例如年份,月份或秒数。 所有字段实现TemporalField
。 众所周知的字段集定义在ChronoField
中 ,如HOUR_OF_DAY
。 附加字段由定义JulianFields
, WeekFields
和IsoFields
。 字段界面旨在允许应用程序定义的字段。
该软件包提供了一些工具,可以以最适合框架的一般方式访问日期和时间的单位和字段。 Temporal
提供支持字段的日期时间类型的抽象。 它的方法支持获取一个字段的值,创建一个修改字段的值的新的日期时间,并查询通常用于提取偏移量或时区的其他信息。
应用程序代码中的一个字段的使用是检索没有方便方法的字段。 例如,获取月份是足够普遍的,因为有一个LocalDate
称为getDayOfMonth()
的方法。 然而,对于更不寻常的领域,有必要使用该领域。 例如, date.get(ChronoField.ALIGNED_WEEK_OF_MONTH)
。 这些字段还提供对有效值范围的访问。
调整和查询
日期时间问题空间的关键部分是将日期调整为新的相关值,例如“月的最后一天”或“下周三”。 这些被建模为调整基准日期时间的函数。 功能实现TemporalAdjuster
,操作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
。
- 从以下版本开始:
- 1.8
-
接口摘要 接口 描述 Temporal 定义对时间对象的读写访问的框架级接口,例如日期,时间,偏移或这些的一些组合。TemporalAccessor 框架级接口定义对时间对象的只读访问,例如日期,时间,偏移或这些的某些组合。TemporalAdjuster 调整时间对象的策略。TemporalAmount 定义一段时间的框架级界面,如“6小时”,“8天”或“2年3个月”。TemporalField 日期时间的字段,如月份或小时。TemporalQuery<R> 查询时间对象的策略。TemporalUnit 日期时间单位,如天数或小时数。 -
类摘要 Class 描述 IsoFields 特定于ISO-8601日历系统的领域和单位,包括季度和周年。JulianFields 一组提供访问朱利安日的日期字段。TemporalAdjusters 常用和有用的TemporalAdjusters。TemporalQueries 通用实现TemporalQuery
。ValueRange 日期时间字段的有效值的范围。WeekFields 星期几,星期周和周末字段的本地化定义。 -
枚举摘要 Enum 描述 ChronoField 一套标准的字段。ChronoUnit 一组标准的日期单位。 -
异常摘要 异常 描述 UnsupportedTemporalTypeException UnsupportedTemporalTypeException表示Temporal类不支持ChronoField或ChronoUnit。