一、上月
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM");
Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date); // 设置为当前时间
calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1); // 设置为上一个月
date = calendar.getTime();
String dd = dateFormat.format(date);
二、本周的第一天和最后一天
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
Calendar cld = Calendar.getInstance(Locale.CHINA);
cld.setFirstDayOfWeek(Calendar.MONDAY);//以周一为首日
cld.setTimeInMillis(System.currentTimeMillis());//当前时间
cld.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);//周一
String format = df.format(cld.getTime());
cld.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);//周日
String format1 = df.format(cld.getTime());
数据库:BETWEEN concat(#{format},' ','00:00:00') and concat(#{format1},' ','23:59:59')
三、近N天
String[] arr = new String[number];
SimpleDateFormat sdf = new SimpleDateFormat("MM-dd");
Calendar c = null;
for (int i = 0; i < arr.length; i++) {
c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -i - 1);
arr[(number - 1) - i] = sdf.format(c.getTime());
}
List<Map> list = new LinkedList<>();
for (int i = 0; i < arr.length; i++) {
int count = pFireDeclarationRepository.getCount(arr[i]);
Map<String, String> map = new LinkedHashMap<>();
map.put("name", arr[i] + "");
map.put("value", count + "");
list.add(map);
}
四、本月的第一天
public static String getMonthFist() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.add(Calendar.MONTH, -1);
calendar.set(Calendar.DAY_OF_MONTH, 0);
// 获取当月第一天
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String firstday = null;
Calendar cale = Calendar.getInstance();
// 获取前月的第一天
cale = Calendar.getInstance();
cale.add(Calendar.MONTH, 0);
cale.set(Calendar.DAY_OF_MONTH, 1);
firstday = format.format(cale.getTime());
return firstday;
}
五、本月的最后一天
public static String getMonthLast() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.add(Calendar.MONTH, -1);
calendar.set(Calendar.DAY_OF_MONTH, 0);
// 获取当月最后一天
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String lastday;
Calendar cale = Calendar.getInstance();
// 获取前月的最后一天
cale = Calendar.getInstance();
cale.add(Calendar.MONTH, 1);
cale.set(Calendar.DAY_OF_MONTH, 0);
lastday = format.format(cale.getTime());
return lastday;
}
六、获取当天的开始时间和结束时间
public static String getDay(String[] args) {
// 获取当天开始时间-00:00:00
LocalDateTime todayStart = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
String todayStartStr = todayStart.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
// 获取当天结束时间-23:59:59
LocalDateTime todayEnd = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
String todayEndStr = todayEnd.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
return todayEndStr;
}
七、获得指定日期的前一天
public static String getSpecifiedDayBefore(String specifiedDay) {
Calendar c = Calendar.getInstance();
Date date = null;
try {
date = new SimpleDateFormat("yy-MM-dd").parse(specifiedDay);
} catch (ParseException e) {
e.printStackTrace();
}
c.setTime(date);
int day = c.get(Calendar.DATE);
c.set(Calendar.DATE, day - 1);
String dayBefore = new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
return dayBefore;
}
八、获取指定月的前一个月
public static String getStrDate(String strDate) {
String stringDate = "";
try {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM");//格式化为2017-10
Date month = formatter.parse(strDate);
Calendar calendar = Calendar.getInstance();//得到Calendar实例
calendar.setTime(month);
calendar.add(Calendar.MONTH, -1);//把月份减1个月
Date starDate = calendar.getTime();//得到时间赋给Data
stringDate = formatter.format(starDate);//使用格式化Data
return stringDate;
} catch (Exception e) {
e.printStackTrace();
return stringDate;
}
}
九、获取前一个月的最后一天
//获取前一个月的最后一天
Calendar c = Calendar.getInstance();
//当前日期设置为指定日期
c.setTime(new Date());
//指定日期月份减去一
c.add(Calendar.MONTH, -1);
//指定日期月份减去一后的 最大天数
c.set(Calendar.DATE, c.getActualMaximum(Calendar.DATE));
//获取上给月最后一天的日期
Date lastDateOfPrevMonth = c.getTime();
String format1 = simpleDateFormat1.format(lastDateOfPrevMonth);