Android Java : How to subtract two times?

2019-03-15 11:56发布

I use some kind of stopwatch in my project and I have

start time ex: 18:40:10 h
stop time  ex: 19:05:15 h

I need a result from those two values like final time = stop - start

I found some examples but they all are very confusing .

Is there any simple solution ?

3条回答
Viruses.
2楼-- · 2019-03-15 12:20

Try this answer it will help you a lot

from here

In this answer, you will find subtract to two times discarding the day and month and year.

it gives you the number of minutes you will spend until you reach the second Time value.

查看更多
ゆ 、 Hurt°
3楼-- · 2019-03-15 12:21

If you have strings you need to parse them into a java.util.Date using java.text.SimpleDateFormat. Something like:

        java.text.DateFormat df = new java.text.SimpleDateFormat("hh:mm:ss");
        java.util.Date date1 = df.parse("18:40:10");
        java.util.Date date2 = df.parse("19:05:15");
        long diff = date2.getTime() - date1.getTime();

Here diff is the number of milliseconds elapsed between 18:40:10 and 19:05:15.

EDIT 1:

Found a method online for this (at http://www.javaworld.com/javaworld/jw-03-2001/jw-0330-time.html?page=2):

  int timeInSeconds = diff / 1000;
  int hours, minutes, seconds;
  hours = timeInSeconds / 3600;
  timeInSeconds = timeInSeconds - (hours * 3600);
  minutes = timeInSeconds / 60;
  timeInSeconds = timeInSeconds - (minutes * 60);
  seconds = timeInSeconds;

EDIT 2:

If you want it as a string (this is a sloppy way, but it works):

String diffTime = (hours<10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds) + " h";

EDIT 3:

If you want the milliseconds just do this

long timeMS = diff % 1000;

You can then divide that by 1000 to get the fractional part of your seconds.

查看更多
该账号已被封号
4楼-- · 2019-03-15 12:27

Assuming you are using java.util.Date:

long totalTime = endDate.getTime() - startDate.getTime();

The result will be the total time in milliseconds.

查看更多
登录 后发表回答