| | |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * @Description : 时间工具类 |
| | |
| | | public static SimpleDateFormat YYYY_MM_DD=new SimpleDateFormat("yyyy-MM-dd"); |
| | | public static SimpleDateFormat YYYY_MM=new SimpleDateFormat("yyyy-MM"); |
| | | public static SimpleDateFormat YYYY_MM_TABLE=new SimpleDateFormat("yyyy_MM"); |
| | | |
| | | public static int compare(String date1Str,String date2Str) throws ParseException { |
| | | Date date1 = YYYY_MM_DD_HH_MM_SS.parse(date1Str); |
| | | Date date2 = YYYY_MM_DD_HH_MM_SS.parse(date2Str); |
| | | if(date1.compareTo(date2)>0){ |
| | | return 1; |
| | | }else if(date1.compareTo(date2) == 0){ |
| | | return 0; |
| | | }else{ |
| | | return -1; |
| | | } |
| | | } |
| | | |
| | | public static Date getMaxTime(String date1Str,String date2Str,String date3Str) { |
| | | try { |
| | | Date date1 = YYYY_MM_DD_HH_MM_SS.parse(date1Str); |
| | | Date date2 = YYYY_MM_DD_HH_MM_SS.parse(date2Str); |
| | | Date date3 = YYYY_MM_DD_HH_MM_SS.parse(date3Str); |
| | | |
| | | Date maxTime = date1; |
| | | if (maxTime.compareTo(date2) < 0) { |
| | | maxTime = date2; |
| | | } |
| | | if (maxTime.compareTo(date3) < 0) { |
| | | maxTime = date3; |
| | | } |
| | | return maxTime; |
| | | }catch (ParseException e){ |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | public static List<List<Date>> getMonthTime(Date startTimeDate,Date endTimeDate) throws ParseException { |
| | | List<List<Date>> timeList = new LinkedList<>(); |
| | |
| | | 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")); |
| | | //dateTemp.setTime(YYYY_MM_DD_HH_MM_SS.parse(startY+"-"+startM+"-01 00:00:00")); |
| | | dateTemp.setTime(ThreadLocalUtil.parse(startY+"-"+startM+"-01 00:00:00",1)); |
| | | Date recordTime,recordTime1; |
| | | |
| | | dateTemp.add(Calendar.MONTH,i); |
| | |
| | | */ |
| | | public static List<String> getMonthList(String startTimeStr,String endTimeStr) throws ParseException { |
| | | Calendar startTimeCalendar = Calendar.getInstance(); |
| | | Date startTime = DateUtil.YYYY_MM_DD_HH_MM_SS.parse(startTimeStr); |
| | | //Date startTime = DateUtil.YYYY_MM_DD_HH_MM_SS.parse(startTimeStr); |
| | | Date startTime = ThreadLocalUtil.parse(startTimeStr,1); |
| | | startTimeCalendar.setTime(startTime); |
| | | |
| | | Calendar endTimeCalendar = Calendar.getInstance(); |
| | | Date endTime = DateUtil.YYYY_MM_DD_HH_MM_SS.parse(endTimeStr); |
| | | //Date endTime = DateUtil.YYYY_MM_DD_HH_MM_SS.parse(endTimeStr); |
| | | Date endTime = ThreadLocalUtil.parse(endTimeStr,1); |
| | | endTimeCalendar.setTime(endTime); |
| | | |
| | | /*String[] startTimeSplit = startTimeStr.split("-"); |
| | |
| | | dateList.add(instance2.getTime()); |
| | | |
| | | } |
| | | result.put(DateUtil.YYYY_MM_TABLE.format(dateList.get(0)),dateList); |
| | | //result.put(DateUtil.YYYY_MM_TABLE.format(dateList.get(0)),dateList); |
| | | result.put(ThreadLocalUtil.format(dateList.get(0),2),dateList); |
| | | } |
| | | return result; |
| | | } |
| | |
| | | boolean existDefaultYear = false; |
| | | //查询的结束时间 在当月,则有default表 |
| | | //同时,抹去月份集合里的当月 |
| | | if(DateUtil.YYYY_MM_TABLE.format(endTimeDate).equals(DateUtil.YYYY_MM_TABLE.format(now.getTime()))){ |
| | | //if(DateUtil.YYYY_MM_TABLE.format(endTimeDate).equals(DateUtil.YYYY_MM_TABLE.format(now.getTime()))){ |
| | | if(ThreadLocalUtil.format(endTimeDate,2).equals(ThreadLocalUtil.format(now.getTime(),2))){ |
| | | List<Date> defaultDateList = new LinkedList<>(); |
| | | defaultDateList.add(startTimeDate); |
| | | defaultDateList.add(endTimeDate); |
| | |
| | | yearTimeMap.put("default",defaultDateList); |
| | | existDefaultYear = true; |
| | | |
| | | yearTimeMap.remove(DateUtil.YYYY_MM_TABLE.format(endTimeDate)); |
| | | //yearTimeMap.remove(DateUtil.YYYY_MM_TABLE.format(endTimeDate)); |
| | | yearTimeMap.remove(ThreadLocalUtil.format(endTimeDate,2)); |
| | | } |
| | | //调整下顺序,将default调整到首位 |
| | | if(existDefaultYear){ |
| | |
| | | |
| | | |
| | | public static void main(String[] args) throws ParseException { |
| | | Date d1 = YYYY_MM_DD_HH_MM_SS.parse("2023-01-22 14:12:22"); |
| | | Date d2 = YYYY_MM_DD_HH_MM_SS.parse("2023-08-24 16:45:22"); |
| | | Map<String, List<Date>> monthListDesc = getQueryTimeForSubTablesByMonthDesc(d1, d2); |
| | | //Date d1 = YYYY_MM_DD_HH_MM_SS.parse("2023-01-22 14:12:22"); |
| | | //Date d2 = YYYY_MM_DD_HH_MM_SS.parse("2023-08-24 16:45:22"); |
| | | //Map<String, List<Date>> monthListDesc = getQueryTimeForSubTablesByMonthDesc(d1, d2); |
| | | // |
| | | //Set<Map.Entry<String, List<Date>>> entries = monthListDesc.entrySet(); |
| | | //for (Map.Entry<String, List<Date>> entry : entries) { |
| | | // System.out.println(entry); |
| | | //} |
| | | //Map<String,String> map = new HashMap<>(); |
| | | //map.put("2022_01",""); |
| | | //map.put("2022_02",""); |
| | | //map.put("2022_10",""); |
| | | //map.put("2022_12",""); |
| | | //map.put("2021_03",""); |
| | | //map.put("2023_01",""); |
| | | //map.put("2023_05",""); |
| | | //map.put("2021_10",""); |
| | | //Set<String> keySet = map.keySet(); |
| | | //List<String> keySetDesc = keySet.stream().sorted(Comparator.comparing(String::hashCode).reversed()).collect(Collectors.toList()); |
| | | String t1 = "2024-01-25 12:22:29"; |
| | | String t2 = "2024-01-25 12:32:24"; |
| | | String t3 = "2024-01-25 12:42:26"; |
| | | Date maxTime = getMaxTime(t1, t2, t3); |
| | | System.out.println(maxTime.toString()); |
| | | |
| | | Set<Map.Entry<String, List<Date>>> entries = monthListDesc.entrySet(); |
| | | for (Map.Entry<String, List<Date>> entry : entries) { |
| | | System.out.println(entry); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |