Подтвердить что ты не робот

Вычтите две даты в Java

Возможный дубликат:
Вычисление разницы между двумя экземплярами дат Java

Я знаю, что это может быть дублированный поток. Но я пытаюсь выяснить способ вычисления разницы между двумя датами. Из jquery строка даты находится в формате 'yyyy-mm-dd'. Я прочитал это как строку и преобразовал в java Date, как этот

Date d1 = new SimpleDateFormat("yyyy-M-dd").parse((String) request.getParameter(date1));
Date d2 = new SimpleDateFormat("yyyy-M-dd").parse((String) request.getParameter(date2));

Я хочу вычислить разницу в количестве дней между этими двумя датами.

Примечание. Я не могу использовать сторонний API, поскольку те, которые должны быть просмотрены.

4b9b3361

Ответ 1

long diff = Math.abs(d1.getTime() - d2.getTime());
long diffDays = diff / (24 * 60 * 60 * 1000);

Ответ 2

Date d1 = new SimpleDateFormat("yyyy-M-dd").parse((String) request.
            getParameter(date1));
Date d2 = new SimpleDateFormat("yyyy-M-dd").parse((String) request.
            getParameter(date2));

long diff = d2.getTime() - d1.getTime();

System.out.println("Difference between  " + d1 + " and "+ d2+" is "
        + (diff / (1000 * 60 * 60 * 24)) + " days.");

Ответ 3

Предполагая, что вы ограничены использованием Date, вы можете сделать следующее:

Date diff = new Date(d2.getTime() - d1.getTime());

Здесь вы вычисляете различия в миллисекундах со времени "эпохи" и создаете новый объект Date в смещении от эпохи. Как говорили другие, ответы в дублированном вопросе, вероятно, являются лучшими альтернативами (если вы не привязаны к Date).