#java
#java
Вопрос:
Если у нас есть 2 даты, предыдущая дата: ср. 02 июня 17:30:00 CDT 2010, Следующая дата: Вс. 13 февраля 22:00:00 CST 2011, и нам нужно найти разницу в минутах. между этими двумя датами
Есть ли способ точно получить это?
Ответ №1:
Да, вы можете получить точную разницу в эти времена:
- Проанализируйте каждый с помощью
SimpleDateFormat
, чтобы получитьDate
. - Получите время в миллисекундах с момента начала эпохи от каждого.
- Вычтите два раза и разделите на 60000 для минут.
Вот код:
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
Date prevDate = sdf.parse("Wed Jun 02 17:30:00 CDT 2010");
Date nextDate = sdf.parse("Sun Feb 13 22:00:00 CST 2011");
long diffTime = nextDate.getTime() - prevDate.getTime();
System.out.println(diffTime / 60000 " minutes");
Ответ №2:
date1.getTime() - date2.getTime()
даст вам разницу в миллисекундах. Затем вы можете разделить это на 60000, чтобы получить разницу в минутах.
Ответ №3:
Используйте TimeUnit
класс для преобразования.
// specify the input format
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy");
String s1 = "Wed Jun 02 17:30:00 CDT 2010";
String s2 = "Sun Feb 13 22:00:00 CST 2011";
// parse to Date object
Date d1 = dateFormat.parse(s1);
Date d2 = dateFormat.parse(s2);
// get time in milliseconds
long l1 = d1.getTime();
long l2 = d2.getTime();
// absolute difference
long diff = Math.abs(l1 - l2);
// convert milliseconds to minute
long min = TimeUnit.MILLISECONDS.toMinutes(diff);
System.out.println(min);
Ответ №4:
Со временем Joda
DurationFormatUtils.formatDuration(date2.getTime() - date1.getTime(), "m");