如何在Java中获得时间年

问题描述 投票:3回答:2

我的问题是从Temporal接口找到一个有用的方法。具体来说,我希望从一个实现Temporal接口的Object中获取年份。接口的所有方法只是添加或从对象中获取,但是,我只想获得Temporal本身的年份。

java java-8 java-time
2个回答
4
投票

Temporal接口继承了TemporalAccessor::get方法,例如,您可以这样做:

Temporal t = LocalDate.now();
System.out.println(t.get(ChronoField.YEAR));

输出:

2018

编辑

由于@Ole V.V. pointed out可以验证Temporal实现是否支持使用Temporal::isSupported所需的字段:

if(t.isSupported(ChronoField.YEAR)){
   // ...
}

如果Temporal实现不支持所需字段,这将防止出现异常。例如,Instant是一个不支持年份的Temporal实现。


3
投票

它在superInterface TemporalAccessor中定义。

所以你可以得到一年,

int year = temporal.get(ChronoField.YEAR);
© www.soinside.com 2019 - 2024. All rights reserved.