Android Java : How to subtract two times?

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

  • How can my view respond to a mousewheel?
  • Action Items not showing in ActionBar with showAsAction=“ifRoom”
  • Intercept HTTP requests sent from Android app
  • How to get the user preferred units? (metric (meters) or imperial (miles))?
  • Relocate Google logo in MapView
  • How can you tell if a View is visible on screen in Android?
  • I found some examples but they all are very confusing .

    Is there any simple solution ?

  • How to include a common menu item in multiple menus in Android menu xml?
  • Android, NetworkInfo.getTypeName(), NullpointerException
  • How to use the ORMLite query builder to get the total records in a table
  • Image taking too long to load?
  • Android devices with pressure sensor
  • How do you create or find a “userdata.img” file for ABI armeabi to copy into the AVD folder
  • 2 Solutions collect form web for “Android Java : How to subtract two times?”

    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.

    Assuming you are using java.util.Date:

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

    The result will be the total time in milliseconds.

    Android Babe is a Google Android Fan, All about Android Phones, Android Wear, Android Dev and Android Games Apps and so on.