| | |
| | | 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 : 时间工具类 |
| | |
| | | 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); |
| | | } |
| | | |
| | | } |