菜单

Java 日期有效性和存在性检查

目录

Java 日期Calendar.setLenient().

Java日期有效性/存在性检查。这是一个示例程序,可执行以下操作。
检查日历中是否存在指定的日期字符串(yyyy/MM/dd 或 yyyy-MM-dd)。

java.text.DateFormat班级setLenient()为 false,以确保严格的日期解析。(日期格式类内部是java.util.Calendar 类中的 setLenient() 函数。调出)。
这种检查方法的依据是,使用无效或不存在的日期调用 parse() 方法将导致 ParseException 异常。


示例程序

/**
 * 日期有效性检查。
 * 返回给定的日期字符串(yyyy/MM/dd 或 yyyy-MM-dd)
 * 返回指定的日期字符串(yyyy/MM/dd 或 yyyy-MM-dd)是否存在于日历中。
 * @param strDate 要检查的字符串。
 * 如果日期存在,返回 True。
 */
public static boolean checkDate(String strDate) {
    if (strDate == null || strDate.length() != 10) {
        抛出新的 IllegalArgumentException(
                "参数字符串 ["+ strDate +"]" +
                ""不合法。");
    }
    strDate = strDate.replace('-', '/');.
    DateFormat format = DateFormat.getDateInstance();.
    // 设置是否严格执行日期/时间解析。
    format.setLenient(false);
    try {
        format.parse(strDate);
        返回 true;
    catch (Exception e) {
        return false; }
    }
}

执行结果

执行示例

public static void main(String[] args) {
    System.out.println(checkDate("2007-01-01"));
    System.out.println(checkDate("2007/02/31"));
    System.out.println(checkDate("aaaa/02/31"));
}

输出结果

真
错误
假
  • URLをコピーしました!
目录