java生成最近12个月代码(年月显示)
import org.apache.commons.lang3.StringUtils;
import org.junit.Test;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class LastYear12Month {
public static String getDateYearMonth() {
Calendar calendar = GregorianCalendar.getInstance();
return calendar.get(Calendar.YEAR)+"-"+(calendar.get(Calendar.MONTH) + 1);
}
public static String getDateYear() {
Calendar calendar = GregorianCalendar.getInstance();
return calendar.get(Calendar.YEAR) + "";
}
public static Date format(String date, String type) throws Exception{
if(StringUtils.isBlank(type)) type = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat format = new SimpleDateFormat(type);
return format.parse(date);
}
public static String[] getLatest12Month(Date date,int num){
Calendar from = Calendar.getInstance();
StringBuffer sub=new StringBuffer();
from.setTime(date);
for (int i=num;i>0;i--) {
from.add(Calendar.MONTH, -i+1);
sub.append(from.get(Calendar.YEAR)+"-"+fillZero(from.get(Calendar.MONTH)+1)).append(",");
from.add(Calendar.MONTH, i-1);
}
sub.deleteCharAt(sub.lastIndexOf(","));
return sub.toString().split(",");
}
public static String fillZero(int i){
String month = "";
if(i<10){
month = "0" + i;
}else{
month = String.valueOf(i);
}
return month;
}
@Test
public void test(){
try {
String dateYearMonth= getDateYear()+"-12";
Date format = format(dateYearMonth, "yyyy-MM");
String[] last12Month = getLatest12Month(format,12);
for (String month:last12Month) {
System.out.println(month);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}