Как иметь минуты между двумя временами?

У меня есть два раза, и я хочу получить разницу в минутах.

Ex:

У меня есть это:

09:11:30;09:15:22;

И я хочу добиться этого:

3 min passed

Обратите внимание, что 9:15:22 не 9:15:30, поэтому 4 минуты еще не прошли.


person José Nobre    schedule 06.06.2018    source источник
comment
Что вы пробовали до сих пор? Вы можете преобразовать время ввода в секунды, получить разницу, а затем разделить на 60, чтобы получить разницу в минутах. Поскольку вас интересуют только минуты, вы можете определить переменную 'diffInMin' как 'int'   -  person sauumum    schedule 06.06.2018
comment
Два раза или две длительности? Ваш заголовок конфликтует с телом вашего Вопроса.   -  person Basil Bourque    schedule 07.06.2018


Ответы (2)


Как и в случае с любым вопросом о дате/времени, поместите свои данные в наиболее удобный для представления контейнер, в данном случае это будет LocalTime.

DateTimeFormatter pattern = DateTimeFormatter.ofPattern("HH:mm:ss", Locale.ENGLISH);
LocalTime from = LocalTime.parse("09:11:30", pattern);
LocalTime to = LocalTime.parse("09:15:22", pattern);

Оттуда вы можете просто использовать API, чтобы сделать всю работу за вас, в данном случае используя Duration...

Duration duration = Duration.between(from, to);
System.out.println(duration.toMinutes());

Который печатает 3 (почти уверен, что вы можете добавить остальную часть форматирования)

Дополнительную информацию можно найти в учебниках по дате/времени

person MadProgrammer    schedule 06.06.2018

String time1 = "09:11:30";
String time2 = "09:15:22";

SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");
Date date1 = format.parse(time1);
Date date2 = format.parse(time2);
long difference = date2.getTime() - date1.getTime(); 
long difInMinute = (difference/1000)/60;
System.out.println(difInMinute+" min passed");

Кредиты: Урос К.

person Sundeep    schedule 06.06.2018
comment
Спасибо за желание внести свой вклад. Пожалуйста, не учите молодежь пользоваться давно устаревшим и заведомо проблемным классом SimpleDateFormat. По крайней мере, не в качестве первого варианта. И не без оговорок. Сегодня у нас намного лучше java.time, современный API даты и времени Java и это DateTimeFormatter. - person Ole V.V.; 06.06.2018
comment
ОК, спасибо, буду иметь в виду - person Sundeep; 07.06.2018