如何在 Java 中获取时间年份
How to get the Year of a Temporal in Java
我的问题是从 Temporal 接口中找到一个有用的方法。具体来说,我想从实现 Temporal 接口的对象中获取年份。接口的所有方法都只是从对象中添加或子化,但是,我只想获取 Temporal 本身的年份。
它在其超接口中定义 TemporalAccessor
。
所以你可以得到年份,
int year = temporal.get(ChronoField.YEAR);
Temporal
interface inherits the TemporalAccessor::get
方法,例如你可以这样做:
Temporal t = LocalDate.now();
System.out.println(t.get(ChronoField.YEAR));
输出:
2018
编辑
作为 is good to validate if the Temporal
implementation supports the desired field using Temporal::isSupported
:
if(t.isSupported(ChronoField.YEAR)){
// ...
}
如果 Temporal
实现不支持所需的字段,这将防止出现异常。例如,Instant
是不支持年份的 Temporal
实现。
我的问题是从 Temporal 接口中找到一个有用的方法。具体来说,我想从实现 Temporal 接口的对象中获取年份。接口的所有方法都只是从对象中添加或子化,但是,我只想获取 Temporal 本身的年份。
它在其超接口中定义 TemporalAccessor
。
所以你可以得到年份,
int year = temporal.get(ChronoField.YEAR);
Temporal
interface inherits the TemporalAccessor::get
方法,例如你可以这样做:
Temporal t = LocalDate.now();
System.out.println(t.get(ChronoField.YEAR));
输出:
2018
编辑
作为Temporal
implementation supports the desired field using Temporal::isSupported
:
if(t.isSupported(ChronoField.YEAR)){
// ...
}
如果 Temporal
实现不支持所需的字段,这将防止出现异常。例如,Instant
是不支持年份的 Temporal
实现。