เมนู

การตรวจสอบความถูกต้องและการมีอยู่ของวันที่ใน Java

สารบัญ

ชวา วันที่การตรวจสอบความถูกต้องและการมีอยู่จริง ปฏิทิน.setLenient()

ชวาตรวจสอบความถูกต้องและความถูกต้องของวันที่นี่คือโปรแกรมตัวอย่างที่ดำเนินการดังต่อไปนี้
ฟังก์ชันนี้จะตรวจสอบว่าสตริงวันที่ที่ระบุ (ปี/เดือน/วัน หรือ ปี-เดือน-วัน) มีอยู่ในปฏิทินหรือไม่

รูปแบบวันที่ java.text.ระดับตั้งค่าความผ่อนปรน()การระบุค่า false จะอนุญาตให้มีการแยกวิเคราะห์วันที่อย่างเข้มงวด (*คลาส DateFormat จะดำเนินการภายในโดยอัตโนมัติ*)เมธอด setLenient() ของคลาส java.util.Calendar(นี่คือสัญญาณเรียกเข้า...)
วิธีการตรวจสอบนี้ใช้ประโยชน์จากข้อเท็จจริงที่ว่า การเรียกใช้เมธอด parse() ด้วยวันที่ไม่ถูกต้องหรือไม่ existent จะส่งผลให้เกิด 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("aaaa/02/31")); }

◆ผลลัพธ์

จริง เท็จ เท็จ
  • URL をkoピーしました!
สารบัญ