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
上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”定义用于概括null行为。 每个方法都没有明确记录“ @throws NullPointerException
”。
所有计算都应检查数字溢出并抛出ArithmeticException
或DateTimeException
。
- 从以下版本开始:
- 1.8
-
接口摘要 接口 描述 Temporal 定义对时态对象的读写访问的框架级接口,例如日期,时间,偏移或这些的某种组合。TemporalAccessor 定义对临时对象的只读访问的框架级接口,例如日期,时间,偏移或这些的某种组合。TemporalAdjuster 调整时态对象的策略。TemporalAmount 定义时间量的框架级界面,例如“6小时”,“8天”或“2年3个月”。TemporalField 日期时间字段,例如月份或小时。TemporalQuery<R> 查询时态对象的策略。TemporalUnit 日期时间单位,例如天或小时。 -
类摘要 类 描述 IsoFields ISO-8601日历系统特定的字段和单位,包括按季度和按周计算的年度。JulianFields 一组日期字段,提供对Julian Days的访问。TemporalAdjusters 常用且有用的TemporalAdjusters。TemporalQueries TemporalQuery
常见实现。ValueRange 日期时间字段的有效值范围。WeekFields 星期几,星期和星期字段的本地化定义。 -
枚举摘要 Enum 描述 ChronoField 一组标准字段。ChronoUnit 一组标准的日期时间单位。 -
异常摘要 异常 描述 UnsupportedTemporalTypeException UnsupportedTemporalTypeException指示Temporal类不支持ChronoField或ChronoUnit。