Разница во времени при вводе в a / c

#java

#java

Вопрос:

Если у нас есть 2 даты, предыдущая дата: ср. 02 июня 17:30:00 CDT 2010, Следующая дата: Вс. 13 февраля 22:00:00 CST 2011, и нам нужно найти разницу в минутах. между этими двумя датами

Есть ли способ точно получить это?

Ответ №1:

Да, вы можете получить точную разницу в эти времена:

  1. Проанализируйте каждый с помощью SimpleDateFormat , чтобы получить Date .
  2. Получите время в миллисекундах с момента начала эпохи от каждого.
  3. Вычтите два раза и разделите на 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");