選單

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

目錄

Java 日期有效性和存在性檢查 Calendar.setLenient()

Java日期有效性和存在性檢查這是一個範例程序,它執行以下操作。
這會檢查指定的日期字串(yyyy/MM/dd 或 yyyy-MM-dd)是否存在於日曆中。

java.text.DateFormat班級setLenient()指定 false 可實現嚴格的日期解析。 (*DateFormat 類別內部執行java.util.Calendar 類別的 setLenient() 方法(這是來電…)
此檢查方法利用了這樣一個事實:使用無效或不存在的日期呼叫 parse() 方法將導致 ParseException 異常。


範例程式

/**
 * 日付の妥当性チェックを行います。
 * 指定した日付文字列(yyyy/MM/dd or yyyy-MM-dd)が
 * カレンダーに存在するかどうかを返します。
 * @param strDate チェック対象の文字列
 * @return 存在する日付の場合true
 */
public static boolean checkDate(String strDate) {
    if (strDate == null || strDate.length() != 10) {
        throw new IllegalArgumentException(
                "引数の文字列["+ strDate +"]" +
                "は不正です。");
    }
    strDate = strDate.replace('-', '/');
    DateFormat format = DateFormat.getDateInstance();
    // 日付/時刻解析を厳密に行うかどうかを設定する。
    format.setLenient(false);
    try {
        format.parse(strDate);
        return 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("2007/02/31")); System.out.println(checkDate("2aaaa2/31");

◆輸出結果

真 假 假
  • 網址をコピーしました!
目錄