Как проверить часть даты в Arraylist коллекции Java? - PullRequest
0 голосов
/ 11 мая 2018

У меня есть один ArrayList:

List<Date> date= ArrayList<Date>();
date.add(2017-07-26 09:27:33);
date.add(2017-07-28 10:11:33);
date.add(2017-07-25 08:27:33);
date.add(2017-07-25 07:27:33);

Сейчас я тестирую

date.contains(2017-07-25 11:27:33);     //should come true

Я хочу проверять только дату, а не время. Как я могу проверить только базу даты, а не времени?

1 Ответ

0 голосов
/ 11 мая 2018

Прежде всего ваш код не может скомпилироваться.

Позволяет изменить его на действительный код Java и сравнить только две даты без временной части:

    List<Date> date = new ArrayList();
    DateFormat format = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss", Locale.ENGLISH);
    DateFormat compareFormat = new SimpleDateFormat("yyyy-mm-dd", Locale.ENGLISH);

    try {
        date.add(format.parse("2017-07-26 09:27:33"));
        date.add(format.parse("2017-07-28 10:11:33"));
        date.add(format.parse("2017-07-25 08:27:33"));
        date.add(format.parse("2017-07-25 07:27:33"));

        Date searchedDate = format.parse("2017-07-26 16:27:33");

        boolean isExist = date.stream().anyMatch(d -> compareFormat.format(d).equals(compareFormat.format(searchedDate)));


        System.out.println(isExist);

    } catch (ParseException e) {
        e.printStackTrace();
    }

Также есть другие решения для сравнения даты без временной части, посмотрите другие решения: Как сравнить две даты без временной части?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...