我需要实施逻辑,例如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;
}
答案 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
调用。