📅  最后修改于: 2023-12-03 15:31:53.437000             🧑  作者: Mango
Java中的 LocalDateTime 是代表日期时间对象的类,而其中的 isSupported() 方法可以用来判断一个指定的Unit是否被支持。 在Java 8中的新时间日期API中,实现了一个接口Temporal。
Temporal就是支持时间的一个概念,这个接口定义了基于时间的值的框架,TemporalField是Temporal的子接口,用来存储单个时间点, 如年、月、日、小时等。
isSupported(TemporalField field) 方法可以判断指定的Unit是否被支持,如果支持则返回true,否则返回false。 该方法的实现会调用TemporalAccessor中的isSupported(TemporalField field)方法完成检查。
下面是isSupported()方法的使用示例:
import java.time.LocalDateTime;
import java.time.temporal.ChronoField;
public class LocalDateTimeDemo {
public static void main(String[] args) {
LocalDateTime dt = LocalDateTime.now();
System.out.println(dt.isSupported(ChronoField.YEAR));
System.out.println(dt.isSupported(ChronoField.HOUR_OF_DAY));
System.out.println(dt.isSupported(ChronoField.DAY_OF_WEEK));
}
}
输出结果为:
true
true
false
代码中我们新建了一个LocalDateTime对象dt,然后分别检查dt是否支持年、小时和星期几等Field,由于LocalDateTime包含了年和小时字段,所以返回结果都为true,星期几字段则不支持,返回false。
该方法可以在开发中,判断某个时间是否支持某一字段,这个方法相对实用易懂。但也需要注意,该方法的入参是TemporalField类型的对象,因此需要通过TemporalField的子类来传值。