Ответ 1
long diff = Math.abs(d1.getTime() - d2.getTime());
long diffDays = diff / (24 * 60 * 60 * 1000);
Возможный дубликат:
Вычисление разницы между двумя экземплярами дат 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, поскольку те, которые должны быть просмотрены.
long diff = Math.abs(d1.getTime() - d2.getTime());
long diffDays = diff / (24 * 60 * 60 * 1000);
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.");
Предполагая, что вы ограничены использованием Date
, вы можете сделать следующее:
Date diff = new Date(d2.getTime() - d1.getTime());
Здесь вы вычисляете различия в миллисекундах со времени "эпохи" и создаете новый объект Date в смещении от эпохи. Как говорили другие, ответы в дублированном вопросе, вероятно, являются лучшими альтернативами (если вы не привязаны к Date
).