当前几号 如果是十号前 前面拼接0 % 表示开始格式说明符,0 表示如果数字长度不够2位,那么前面用0填充,2 表示数字的最小位数
String dayS = String.format(“%02d”, now.getDayOfMonth());
AssertUtil.isTrue(startDate.isAfter(endDate)).throwException(“结束时间不能早于开始时间!”);
AssertUtil.isTrue(startDate.isBefore(now.minusMonths(13))).throwException(“您选的时间超过最大筛选时间跨度,无法导出账单!!”);
AssertUtil.isTrue(endDate.isAfter(now.minusMonths(1))).throwException(“您选的时间尚未生成账单!”);
now.minusMonths(2).isBefore(endDate)
String转date
SimpleDateFormat sdf1 = new SimpleDateFormat(DateUtils.YYYYMMDD);
SimpleDateFormat sdf2 = new SimpleDateFormat(DateUtils.YYYY_MM_DD);
String data = build.getPeriod().concat("01");
Date dateDate = sdf1.parse(data);
date 转String
String period = sdf2.format(dateDate);
/****
* 传入具体日期 ,返回具体日期增加一个月。
* @param date 日期(2017-04-13)
* @return 2017-05-13
* @throws ParseException
*/
public static String subMonth(String date) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date dt = sdf.parse(date);
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(dt);
rightNow.add(Calendar.MONTH, 1);
Date dt1 = rightNow.getTime();
String reStr = sdf.format(dt1);
return reStr;
}
/**
* 当前时间减去天数
* @param
* @return
*/
public static String CalendarDateDays(Integer days){
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
//取今天日期,如果日期类型为String类型,可以使用df.parse()方法,转换为Date类型
Date date = new Date();
Calendar calendar = Calendar.getInstance();//new一个Calendar类,把Date放进去
calendar.setTime(date);
/*calendar.add(Calendar.DATE, 1);//实现日期加一操作,也就是明天
//控制台打印的日期为明天日期,2019-06-11
System.out.println("明天的日期为:" + df.format(calendar.getTime()));*/
//此时的日期为明天的日期,要实现昨天,日期应该减二
calendar.add(Calendar.DATE, -days);
return df.format(calendar.getTime());
}
/**
* 当前时间减去月数 yyyy-MM-dd
* @param month
* @return
*/
public static String CalendarDateMonth(Integer month){
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
//取今天日期,如果日期类型为String类型,可以使用df.parse()方法,转换为Date类型
Date date = new Date();
Calendar calendar = Calendar.getInstance();//new一个Calendar类,把Date放进去
calendar.setTime(date);
calendar.add(Calendar.MONTH, -month);//当前时间减去一个月,即一个月前的时间
return df.format(calendar.getTime());
}
/**
* 当前时间减去月数 yyyy-MM
* @param month
* @return
*/
public static String CalendarDateMonths(Integer month){
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM");
//取今天日期,如果日期类型为String类型,可以使用df.parse()方法,转换为Date类型
Date date = new Date();
Calendar calendar = Calendar.getInstance();//new一个Calendar类,把Date放进去
calendar.setTime(date);
calendar.add(Calendar.MONTH, -month);//当前时间减去一个月,即一个月前的时间
return df.format(calendar.getTime());
}
/**
* 获取当前时间到凌晨12点的毫秒数
*
* //cal.set(Calendar.HOUR,0);此方法如果当前时间超过中午12点,则返回的结果是当前时间到明天中午十二点的秒数,如果当前时间不超过中午12:00,则返回的结果是到第二天凌晨的秒数
* //cal.set(Calendar.HOUR_OF_DAY, 0);无论当前时间是否超过中午12:00,获取的都是到第二天凌晨的秒数。
* Calendar.HOUR:12小时制。
* Calendar.HOUR_OF_DAY :24小时制。
* @return
*/
public static Long getSecondsNextEarlyMorning() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_YEAR, 1);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.MILLISECOND, 0);
return (cal.getTimeInMillis() - System.currentTimeMillis());
}