Calculating time between two date objects

Discussion in 'Java' started by Brian, Dec 9, 2007.

  1. Brian

    Brian Guest

    Hi

    I need a few lines of code that calculate the time between two Date()
    objects.

    I need it to calculate the time between two occurences - if there is a
    better solution than using Date() objects I'm all ears :)

    Sincerely
    Brian
     
    Brian, Dec 9, 2007
    #1
    1. Advertising

  2. Brian

    Arne Vajhøj Guest

    Brian wrote:
    > I need a few lines of code that calculate the time between two Date()
    > objects.
    >
    > I need it to calculate the time between two occurences - if there is a
    > better solution than using Date() objects I'm all ears :)


    ..getTime() on both and subtract ?

    Arne
     
    Arne Vajhøj, Dec 9, 2007
    #2
    1. Advertising

  3. Brian

    Daniel Pitts Guest

    Arne Vajhøj wrote:
    > Brian wrote:
    >> I need a few lines of code that calculate the time between two Date()
    >> objects.
    >> I need it to calculate the time between two occurences - if there is a
    >> better solution than using Date() objects I'm all ears :)

    >
    > ..getTime() on both and subtract ?
    >
    > Arne

    You can also use System.currentTimeMilles(), depending on what you need.
    How close together are the occurrences? Is this for timing a short
    method, or is it for days apart?

    --
    Daniel Pitts' Tech Blog: <http://virtualinfinity.net/wordpress/>
     
    Daniel Pitts, Dec 9, 2007
    #3
  4. Brian

    Zig Guest

    On Sun, 09 Dec 2007 15:21:11 -0500, Brian <mail@DEL_oddball_ETE.dk> wrote:

    > Hi
    >
    > I need a few lines of code that calculate the time between two Date()
    > objects.


    import java.util.Date;
    import java.util.concurrent.TimeUnit;

    /**
    * Computes the time difference between two dates, as a-b.
    * @param units the desired units of the result. Units larger than
    * MILLISECONDS may cause truncation
    */
    public long getDifference(Date a, Date b, TimeUnit units) {
    return units.convert(a.getTime()-b.getTime(), TimeUnit.MILLISECONDS);
    }

    >
    > I need it to calculate the time between two occurences - if there is a
    > better solution than using Date() objects I'm all ears :)


    Date is appropriate if you are echoing the Date information to a log,
    console, or are otherwise presenting the "time of occurence" somewhere in
    a human readable format. It uses System.currentTimeMillis under the hood.

    System.currentTimeMillis is appropriate for exchanging time between two
    remote machines, or for saving a timestamp to be read back in a later
    session. But, for 2 or more machines, keep in mind that those machines may
    have the clock set slightly differently. System.currentTimeMillis is also
    dependant on the OS clock granularity, and on Windows this value only
    changes every 10ms or so. Lastly, if the system clock changes between
    calculations, then you don't get a measurement of the timelapse between
    said events. While it may be uncommon for a user to change the clock
    between events, many modern systems do have the option for network time
    syncs, which can automatically adjust the clock in the background.

    System.nanoTime is appropriate for measuring elapsed time within a single
    VM session. If you just call System.nanoTime(), the result doesn't have
    any meaning that you can display. But differences between calls will give
    you a good measure of elapsed time. Of course, differences between
    System.nanoTime taken on one host vs another host aren't going to have
    much value or meaning, and the same goes for taking differences between
    the current VM session and a previous session. However, System.nanoTime is
    immune from clock changes, and will give you correct elapsed time results,
    and with much greater precision than System.currentTimeMillis.

    Hope that helps to answer your question.

    -Zig
     
    Zig, Dec 9, 2007
    #4
  5. Brian

    Roedy Green Guest

    On Sun, 09 Dec 2007 21:21:11 +0100, Brian <mail@DEL_oddball_ETE.dk>
    wrote, quoted or indirectly quoted someone who said :

    >I need a few lines of code that calculate the time between two Date()
    >objects.


    see http://mindprod.com/jgloss/time.html
    --
    Roedy Green Canadian Mind Products
    The Java Glossary
    http://mindprod.com
     
    Roedy Green, Dec 10, 2007
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. clintonb
    Replies:
    9
    Views:
    902
    James Kanze
    May 23, 2007
  2. PeteDK
    Replies:
    1
    Views:
    265
    Steven D'Aprano
    Aug 14, 2009
  3. Tim
    Replies:
    3
    Views:
    143
  4. Jayesh Kamdar
    Replies:
    2
    Views:
    166
    Gunnar Hjalmarsson
    May 25, 2005
  5. Yotam
    Replies:
    4
    Views:
    619
    Dr J R Stockton
    Nov 10, 2006
Loading...

Share This Page