user3449772
user3449772

Reputation: 757

Difference hours Joda time in Java

I've a problem with Joda Time... So, I'm developing a time difference method and I would be calculate the interval beetwen 2 times... I must develop 2 cases but I don't undestand how can I do:

1° case - interval

date1 = "01/02/2014 9:00";
date2 = "01/02/2014 18:00";

Expected result: 9 hours

2° case - difference time

date1 = "9:00";
date2 = "1:00";

Expected result: 8

how can I do? I'm very confused...

thank you guys!!

Upvotes: 0

Views: 838

Answers (1)

Meno Hochschild
Meno Hochschild

Reputation: 44071

class HourDeltaCalculator {

  // assuming you want month first like in US-date-format?
  private static final DateTimeFormatter FORMATTER = 
    DateTimeFormat.forPattern("MM/dd/yyyy H:mm"); 

  public static int hoursBetween(String date1, String date2) {
    LocalDateTime ldt1 = FORMATTER.parseLocalDateTime(date1);
    LocalDateTime ldt2 = FORMATTER.parseLocalDateTime(date2);

    return Hours.hoursBetween(ldt1, ldt2).getHours();
  }
}

This code yields:

String date1 = "01/02/2014 9:00";
String date2 = "01/02/2014 18:00";
System.out.println(hoursBetween(date1, date2)); // 9

Your other case can be done in a very similar way, but with LocalTime instead of LocalDateTime. By the way, the difference between 09:00 and 01:00 is not 8, but -8.

Upvotes: 1

Related Questions