java8的時間api很好用,但有的場景用Calendar也是很合適的
/**
* 從當前時間獲取上個月的第一天和最後一天
*/
private void getPreMonthDate(String startDate) throws Exception {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = getPreMonth(startDate);
//獲取某月最小天數
int firstDay = c.getActualMinimum(Calendar.DAY_OF_MONTH);
//設置日曆中月份的最小天數
c.set(Calendar.DAY_OF_MONTH, firstDay);
// 上個月第一天
String startTime = format.format(c.getTime());
Calendar c2 = getPreMonth(startDate);
int lastDay = c2.getActualMaximum(Calendar.DAY_OF_MONTH);
c2.set(Calendar.DAY_OF_MONTH, lastDay);
String endTime = format.format(c2.getTime());
}
/**
* 從當前時間"yyyy-MM-dd"格式獲取上個月的時間
*/
private Calendar getPreMonth(String startDate) throws Exception{
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date date = format.parse(startDate);
c.setTime(date);
c.add(Calendar.MONTH, -1);
return c;
}
獲取上週的時間也是一個道理 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Calendar c = Calendar.getInstance(); Date date = format.parse("2020-05-01"); c.setTime(date); c.add(Calendar.DATE, -7); format.format(c.getTime());