public static String[] getLast12Months(Date timeDay){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); String time = sdf.format(timeDay); //处理月份输入条件 if(time.length()==7){ time=time+"-01 00:00:00"; }else if(time.length()==110){ time=time.substring(0,7)+"-01 00:00:00"; } Date date = new Date(); SimpleDateFormat sdp = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); try { date= sdp.parse(time); } catch (Exception e) { return null; } String[] last12Months = new String[12]; Calendar cal = Calendar.getInstance(); //设置输入条件时间 cal.setTime(date); //要先+1,才能把本月的算进去 cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)+1); for(int i=0; i<12; i++){ //逐次往前推1个月 cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)-1); last12Months[11-i] = cal.get(Calendar.YEAR)+ "-" + addZeroForNum(String.valueOf(cal.get(Calendar.MONTH)+1), 2); } return last12Months; } public static String addZeroForNum(String str, int strLength) { int strLen = str.length(); if (strLen < strLength) { while (strLen < strLength) { StringBuffer sb = new StringBuffer(); // 左补0 sb.append("0").append(str); // sb.append(str).append("0");//右补0 str = sb.toString(); strLen = str.length(); } } return str; }