根据传入日期 往前或者往后 顺延月份

自己mark一下

工作场景 echarts图表需要,根据传入的日期时间(easyui datebox取值出来是string类型格式为:"2018-06-30"),推算往前几个月或者往后几个月是几月,

/**
 * 传入日期 往前或往后 顺延月数
 *
 * params: String date:传入日期(yyyy-MM-dd);Integer num:顺延月数(月份减1为-1,加1为1)
 * result: String(yyyy-MM-dd)
 */
public static String dateIntervalMonth(String date,Integer num){
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
    ParsePosition pos = new ParsePosition(0);//表示索引从第几个开始解析字符串
    Date strtodate = formatter.parse(date, pos);

    Calendar calendar = Calendar.getInstance();//日历对象
    calendar.setTime(strtodate);//设置当前日期
    calendar.add(Calendar.MONTH, num);//月份减1为-1,加1为1
    Date d = calendar.getTime();
    return formatter.format(d);
}

例子:

dateIntervalMonth("2018-06-30",-5).replaceAll("-","").substring(0,6);//结果为 201801

猜你喜欢

转载自blog.csdn.net/tornado430/article/details/81873633