Java日期转换问题,输入日期为2014年10月的字符串

时间:2014-10-03 14:02:39

标签: java date java.util.date

我需要实施逻辑,例如SEP 2014,OCT 2014,NOV 2014等输入日期是否是当前月份。我写了下面的逻辑,用于检查所选周是否是当前周,使用以下方法但是无法实现当月

public static boolean isCurrentWeek(Date date, Date dateStart, Date dateEnd)

 {

    if (date != null && dateStart != null && dateEnd != null) {


        if(date.equals(dateStart) || date.equals(dateEnd) ){


            return true;


        }else if (date.after(dateStart) && date.before(dateEnd)) {


            return true;


        }


        else {


            return false;

        }

    }
    return false;
}

2 个答案:

答案 0 :(得分:1)

尝试使用Apache Commons:

DateUtils.truncatedEquals( date, new Date(), Calendar.MONTH );

如果两个日期在同一个月,则返回true

修改

也许这个:

public static boolean isInCurrentMonth(String inputDateString) {
    SimpleDateFormat sdf = new SimpleDateFormat("MMM yyyy", Locale.ENGLISH);
    try {
        Date inputDate = sdf.parse(inputDateString);
        return DateUtils.truncatedEquals(new Date(), inputDate, Calendar.MONTH);
    } catch (ParseException e) {
        // error handling
    }
}

答案 1 :(得分:0)

我认为您可以使用与此类似的代码解决您的问题:

String target = "Oct 2000";
DateFormat df = new SimpleDateFormat("MMM yyyy", Locale.ENGLISH);
try{
  Date date = df.parse(target);
  Calendar calendar = Calendar.getInstance();
  Calendar targetCalendar = Calendar.getInstance();
  targetCalendar.setTime(date);
  System.out.println(targetCalendar.get(Calendar.MONTH) == calendar.get(Calendar.MONTH));
 } catch (ParseException e){
 }

字符串target是您的输入,例如" 2014年9月"。此字符串被解析为Date,然后用于设置Calendar对象中的时间。第二个Calendar包含当前时间。检查两个日历是否与月份匹配是System.out.println调用。