Проверка, существует ли дата в Java - PullRequest
6 голосов
/ 23 декабря 2010

Существует ли какой-либо предопределенный класс в Java, такой, что, если я передам ему дату, она должна вернуть, является ли она действительной датой или нет?Например, если я передаю его 31 февраля какого-то года, он должен вернуть false, а если дата существует, то она должна вернуть мне true для любой даты любого года.

И я также хочу методэто скажет мне, какой день недели у этой конкретной даты.Я прошел класс Calender, но не понял, как это сделать.

Ответы [ 3 ]

16 голосов
/ 23 декабря 2010

Как проверить дату в Java

private static boolean isValidDate(String input) {
        String formatString = "MM/dd/yyyy";

        try {
            SimpleDateFormat format = new SimpleDateFormat(formatString);
            format.setLenient(false);
            format.parse(input);
        } catch (ParseException e) {
            return false;
        } catch (IllegalArgumentException e) {
            return false;
        }

        return true;
    }

public static void main(String[] args){
        System.out.println(isValidDate("45/23/234")); // false
        System.out.println(isValidDate("12/12/2111")); // true
    }
6 голосов
/ 23 декабря 2010

Ключ должен вызывать DateFormat # isLenient (false) , поэтому он не будет выводить значения, выходящие за пределы диапазона во время синтаксического анализа:

DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
format.parse("2010-02-31"); //=> Ok, rolls to "Wed Mar 03 00:00:00 PST 2010".
format.setLenient(false);
format.parse("2010-02-31"); //=> Throws ParseException "Unparseable date".

Конечно, вы можете использовать любой фактический формат даты, который вам необходим.

0 голосов
/ 23 декабря 2010

Вы можете использовать это, чтобы получить день недели с даты

    Calendar currentDate = Calendar.getInstance(); //or your specified date.
    int weekDay = currentDate.get(Calendar.DAY_OF_WEEK);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...