difference between two dates in java

Converts Date in milliseconds (ms) and calculate the differences between two dates, with following rules :

 1000 milliseconds = 1 second
 60 seconds = 1 minute
 60 minutes = 1 hour
 24 hours = 1 day

String dateStart = “01/14/2012 09:29:58”;
String dateStop = “01/15/2012 10:31:48”;

//HH converts hour in 24 hours format (0-23), day calculation
SimpleDateFormat format = new SimpleDateFormat(“MM/dd/yyyy HH:mm:ss”);

Date d1 = null;
Date d2 = null;

try {
d1 = format.parse(dateStart);
d2 = format.parse(dateStop);

int diffInDays = (int)( (d2.getTime() – d1.getTime())
/ (1000 * 60 * 60 * 24) )

//—————————————————-

//in milliseconds
long diff = d2.getTime() – d1.getTime();

long diffSeconds = diff / 1000 % 60;
long diffMinutes = diff / (60 * 1000) % 60;
long diffHours = diff / (60 * 60 * 1000) % 24;
long diffDays = diff / (24 * 60 * 60 * 1000);

System.out.print(diffDays + ” days, “);
System.out.print(diffHours + ” hours, “);
System.out.print(diffMinutes + ” minutes, “);
System.out.print(diffSeconds + ” seconds.”);

//—————————————————–

DateTime dt1 = new DateTime(d1);
DateTime dt2 = new DateTime(d2);

System.out.print(Days.daysBetween(dt1, dt2).getDays() + ” days, “);
System.out.print(Hours.hoursBetween(dt1, dt2).getHours() % 24 + ” hours, “);
System.out.print(Minutes.minutesBetween(dt1, dt2).getMinutes() % 60 + ” minutes, “);
System.out.print(Seconds.secondsBetween(dt1, dt2).getSeconds() % 60 + ” seconds.”);

//——————————————————-

long duration = d2.getTime() – d1.getTime();

long diffInSeconds = TimeUnit.MILLISECONDS.toSeconds(duration);
long diffInMinutes = TimeUnit.MILLISECONDS.toMinutes(duration);
long diffInHours = TimeUnit.MILLISECONDS.toHours(duration);

//——————————————————–
Use Joda-Time library

DateTime startTime, endTime;
Period p = new Period(startTime, endTime);
long hours = p.getHours();
long minutes = p.getMinutes();

Joda Time has a concept of time Interval:

Interval interval = new Interval(oldTime, new Instant());

} catch (Exception e) {
e.printStackTrace();
}

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s