package com.whyc.util;
|
|
import java.text.ParseException;
|
import java.text.SimpleDateFormat;
|
import java.util.Calendar;
|
import java.util.Date;
|
import java.util.LinkedList;
|
import java.util.List;
|
|
/**
|
* @Description : 时间工具类
|
* @date 2020/10/15
|
**/
|
public class DateUtil {
|
|
public static SimpleDateFormat YYYY_MM_DD_HH_MM_SS=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
public static SimpleDateFormat YYYY_MM_DD_HH_MM_SS_UNION=new SimpleDateFormat("yyyyMMddHHmmss");
|
public static SimpleDateFormat YYYY_MM_DD=new SimpleDateFormat("yyyy-MM-dd");
|
|
public static List<List<Date>> getMonthTime(Date startTimeDate,Date endTimeDate) throws ParseException {
|
List<List<Date>> timeList = new LinkedList<>();
|
|
Calendar startTimeCalendar = Calendar.getInstance();
|
startTimeCalendar.setTime(startTimeDate);
|
|
Calendar endTimeCalendar = Calendar.getInstance();
|
endTimeCalendar.setTime(endTimeDate);
|
|
//按月份切分时段
|
int startY = startTimeCalendar.get(Calendar.YEAR);
|
int startM = startTimeCalendar.get(Calendar.MONTH)+1;
|
|
int endY = endTimeCalendar.get(Calendar.YEAR);
|
int endM = endTimeCalendar.get(Calendar.MONTH)+1;
|
|
int Y = endY - startY;
|
int len = Y*12+(endM-startM)+1;
|
|
Calendar dateTemp = Calendar.getInstance();
|
for (int i = 0; i < len; i++) {
|
List<Date> SEList = new LinkedList<>();
|
dateTemp.setTime(YYYY_MM_DD_HH_MM_SS.parse(startY+"-"+startM+"-01 00:00:00"));
|
Date recordTime,recordTime1;
|
|
dateTemp.add(Calendar.MONTH,i);
|
recordTime = dateTemp.getTime();
|
|
int lastDay = dateTemp.getActualMaximum(Calendar.DAY_OF_MONTH);
|
dateTemp.set(Calendar.DAY_OF_MONTH,lastDay);
|
dateTemp.set(Calendar.HOUR_OF_DAY,23);
|
dateTemp.set(Calendar.MINUTE,59);
|
dateTemp.set(Calendar.SECOND,59);
|
recordTime1 = dateTemp.getTime();
|
|
if(i==0){
|
recordTime = startTimeDate;
|
}
|
if(i==len-1){
|
recordTime1 = endTimeDate;
|
}
|
SEList.add(recordTime);
|
SEList.add(recordTime1);
|
|
timeList.add(SEList);
|
}
|
return timeList;
|
}
|
|
public static void main(String[] args) throws ParseException {
|
Date d1 = YYYY_MM_DD_HH_MM_SS.parse("2021-12-25 14:12:22");
|
Date d2 = YYYY_MM_DD_HH_MM_SS.parse("2022-01-10 09:12:22");
|
List<List<Date>> monthTime = getMonthTime(d1, d2);
|
System.out.println(monthTime);
|
}
|
|
}
|