📌  相关文章
📜  Java中的 ZonedDateTime isSupported() 方法及示例

📅  最后修改于: 2022-05-13 01:55:30.331000             🧑  作者: Mango

Java中的 ZonedDateTime isSupported() 方法及示例

在 ZonedDateTime 类中,根据传递给它的参数,有两种类型的 isSupported() 方法。

isSupported(TemporalField 字段)

ZonedDateTime 类的isSupported()方法用于检查ZonedDateTime类是否支持指定的字段,这意味着使用该方法我们可以检查是否可以针对指定的字段查询此 ZonedDateTime。

ChronoField 支持的字段有:

  • NANO_OF_SECOND
  • MICRO_OF_SECOND
  • MILLI_OF_SECOND
  • INSTANT_SECONDS
  • SECOND_OF_MINUTE
  • NANO_OF_DAY
  • MICRO_OF_DAY
  • MILLI_OF_DAY
  • SECOND_OF_DAY
  • MINUTE_OF_HOUR
  • MINUTE_OF_DAY
  • HOUR_OF_AMPM
  • CLOCK_HOUR_OF_AMPM
  • HOUR_OF_DAY
  • CLOCK_HOUR_OF_DAY
  • AMPM_OF_DAY
  • DAY_OF_WEEK
  • ALIGNED_DAY_OF_WEEK_IN_MONTH
  • ALIGNED_DAY_OF_WEEK_IN_YEAR
  • DAY_OF_MONTH
  • DAY_OF_YEAR
  • EPOCH_DAY
  • ALIGNED_WEEK_OF_MONTH
  • ALIGNED_WEEK_OF_YEAR
  • MONTH_OF_YEAR
  • PROLEPTIC_MONTH
  • YEAR_OF_ERA
  • 时代
  • INSTANT_SECONDS
  • OFFSET_SECONDS

所有其他 ChronoField 实例将返回 false。

句法:

public boolean isSupported(TemporalField field)

参数:此方法接受一个参数字段,该字段是要检查的字段。

返回值:如果此日期时间支持该字段,则此方法返回布尔值 true,否则返回 false。

下面的程序说明了 isSupported() 方法:

方案一:

// Java program to demonstrate
// ZonedDateTime.isSupported() method
  
import java.time.*;
import java.time.temporal.ChronoField;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // create a ZonedDateTime object
        ZonedDateTime zdt
            = ZonedDateTime
                  .parse(
                      "2018-12-06T19:21:12.123+05:30[Asia/Calcutta]");
  
        // check ALIGNED_WEEK_OF_YEAR
        // is supported in ZonedDateTime
        boolean value
            = zdt.isSupported(
                ChronoField.ALIGNED_WEEK_OF_YEAR);
  
        // print result
        System.out.println("ALIGNED_WEEK_OF_YEAR "
                           + "Field is supported: "
                           + value);
    }
}
输出:
ALIGNED_WEEK_OF_YEAR Field is supported: true

isSupported(时间单位单位)

ZonedDateTime 类的isSupported()方法,用于检查ZonedDateTime类是否支持指定的单位,这意味着使用该方法我们可以检查是否可以针对指定的单位查询此 ZonedDateTime。

ChronoUnit 支持的字段有:

  • 纳诺斯
  • 微信
  • 米利斯
  • 分钟
  • 小时
  • HALF_DAYS
  • 周数
  • 几个月
  • 几十年
  • 世纪
  • 千年
  • ERAS

所有其他 ChronoUnit 实例将返回 false。

句法:

public boolean isSupported(TemporalUnit unit)

参数:此方法接受一个参数单位,即要检查的单位。

返回值:如果此日期时间支持该字段,则此方法返回布尔值 true,否则返回 false。

下面的程序说明了 isSupported() 方法:

方案一:

// Java program to demonstrate
// ZonedDateTime.isSupported() method
  
import java.time.*;
import java.time.temporal.ChronoUnit;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // create a ZonedDateTime object
        ZonedDateTime lt
            = ZonedDateTime
                  .parse(
                      "2018-12-06T19:21:12.123+05:30[Asia/Calcutta]");
  
        // check MILLENNIA ChronoUnit supported
        // in ZonedDateTime
        boolean value
            = lt.isSupported(ChronoUnit.MILLENNIA);
  
        // print result
        System.out.println("ChronoUnit MILLENNIA "
                           + "is  supported: "
                           + value);
    }
}
输出:
ChronoUnit MILLENNIA is  supported: true

参考:

  • https://docs.oracle.com/javase/10/docs/api/java Java Java)
  • https://docs.oracle.com/javase/10/docs/api/java Java Java)