//时间格式
public static final String YM = "yyyy-MM";
public static final String YMD = "yyyy-MM-dd";
public static final String chinaYMD = "yyyy年MM月dd日";
public static final String YMD2 = "yyyy/MM/dd";
public static final String YMDHMS = "yyyy-MM-dd HH:mm:ss";
/**
* 判断是否是N月以内
*
* @param oldData
* @return
*/
public static boolean isInNMonths(String oldData, String newData, Integer n) {
boolean result = false;
try {
Date oldDate = stringToDate(oldData);
Date newDate = stringToDate(newData);
Calendar bef = Calendar.getInstance();
Calendar aft = Calendar.getInstance();
bef.setTime(oldDate);
aft.setTime(newDate);
// 月份相差
int res = aft.get(Calendar.MONTH) - bef.get(Calendar.MONTH);
int month = (aft.get(Calendar.YEAR) - bef.get(Calendar.YEAR)) * 12;
int months = Math.abs(month + res);
// 如果小于n,则直接判断在n月内。如果等于n,要判断具体天数
if (months < n || (months == n && (aft.get(Calendar.DATE) <= bef.get(Calendar.DATE)))) {
result = true;
}
} catch (Exception e) {}
return result;
}
public static Date stringToDate(String dateString) {
List<String> patternList = Lists.newArrayList(YMDHMS, YMD, chinaYMD, YMD2, YM);
for (String pattern : patternList) {
try {
return parse(dateString, pattern);
} catch (Exception e) {
continue;
}
}
return null;
}
//字符串解析为时间
public static Date parse(String str, String pattern) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.parse(str);
}