У меня есть два раза, и я хочу получить разницу в минутах.
Ex:
У меня есть это:
09:11:30;09:15:22;
И я хочу добиться этого:
3 min passed
Обратите внимание, что 9:15:22 не 9:15:30, поэтому 4 минуты еще не прошли.
У меня есть два раза, и я хочу получить разницу в минутах.
Ex:
У меня есть это:
09:11:30;09:15:22;
И я хочу добиться этого:
3 min passed
Обратите внимание, что 9:15:22 не 9:15:30, поэтому 4 минуты еще не прошли.
Как и в случае с любым вопросом о дате/времени, поместите свои данные в наиболее удобный для представления контейнер, в данном случае это будет 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
(почти уверен, что вы можете добавить остальную часть форматирования)
Дополнительную информацию можно найти в учебниках по дате/времени а>
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");
Кредиты: Урос К.
SimpleDateFormat
. По крайней мере, не в качестве первого варианта. И не без оговорок. Сегодня у нас намного лучше java.time
, современный API даты и времени Java и это DateTimeFormatter
.
- person Ole V.V.; 06.06.2018