Java时代的Joda时差

时间:2014-04-12 14:27:02

标签: java datetime jodatime

我和Joda Time有问题...... 所以,我正在开发一种时差方法,我将计算间隔beetwen 2次... 我必须开发2个案例,但我不知道如何做:

1°病例 - 间隔

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

Expected result: 9 hours

2°的情况 - 差异时间

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

Expected result: 8

我该怎么办?我很困惑......

谢谢你们!

1 个答案:

答案 0 :(得分:1)

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();
  }
}

此代码产生:

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

您的其他案例可以采用非常类似的方式完成,但LocalTime代替LocalDateTime。顺便说一句,09:00和01:00之间的差异不是8,而是-8