Java:给定日期是否在12个月内

时间:2014-10-14 08:31:17

标签: java date datetime

我有一个"07-AUG-13"形式的日期字符串。

我想知道给定日期是否在当前日期的某个时间段内。

bool 
isItWithin(int period){
    //check if "07-AUG-13" is within a "period" months from now
}

3 个答案:

答案 0 :(得分:1)

使用Calendar类:

  public static boolean isWithinMonths(Date startDate, Date endDate, int months) {
    Calendar startCalendar = Calendar.getInstance();
    startCalendar.setTime(startDate);
    Calendar endCalendar = Calendar.getInstance();
    endCalendar.setTime(endDate);

    startCalendar.add(Calendar.MONTH, months);

    return startCalendar.before(endCalendar);
  }

答案 1 :(得分:0)

如果您使用Java 8,请使用新的时间api。

LocalDate startDate = LocalDate.of(2004, Month.JANUARY, 1);
LocalDate endDate = LocalDate.of(2005, Month.JANUARY, 1);

long monthsInYear2 = ChronoUnit.MONTHS.between(startDate, endDate);

答案 2 :(得分:-2)

我建议您使用[Joda Time Library]而不是JDK< 8 [Joda ...]

或者你可以试试这个东西:

long diff = date1.getTime() - date2.getTime();
long monthDiff=Math.ceil((diff / (60 * 60 * 24)));