THỰC ĐƠN

Kiểm tra tính hợp lệ và sự tồn tại của đối tượng Date trong Java.

mục lục

Java ngàyKiểm tra tính hợp lệ và sự tồn tại Calendar.setLenient()

JavaKiểm tra tính hợp lệ và sự tồn tại của ngày thángĐây là một chương trình mẫu thực hiện hành động sau.
Thao tác này kiểm tra xem chuỗi ngày tháng được chỉ định (yyyy/MM/dd hoặc yyyy-MM-dd) có tồn tại trên lịch hay không.

java.text.DateFormatlớp họcsetLenient()Việc chỉ định false cho phép phân tích cú pháp ngày tháng nghiêm ngặt. (*Lớp DateFormat thực hiện việc này bên trong)Phương thức setLenient() của lớp java.util.Calendar(Đây là cuộc gọi...)
Phương pháp kiểm tra này tận dụng thực tế là việc gọi phương thức parse() với ngày tháng không hợp lệ hoặc không tồn tại sẽ dẫn đến một ParseException.


Chương trình mẫu

/**
 * 日付の妥当性チェックを行います。
 * 指定した日付文字列(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;
    }
}

Kết quả thực thi

◆Ví dụ

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")); }

◆Kết quả đầu ra

đúng sai sai
  • URLをコピーしました!
mục lục