將倆個一個時間段按照固定時間拆分,比如把給定時間按照一小時拆分拆分

import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; /** * @Description: 時間切片工具 * @Auther: xuxiaojun * @Date: 2020-03-19 */ public class DateSplitUtils { /** * 按照指定小時分割時間段 * @param dateType 類型 M/D/H/N -->每月/每天/每小時/每分鐘 * @param dBegin開始時間 * @param dEnd結束時間 * @param time 指定小時(如:1、2、3、4) * @return */ public static List<String> findDates(String dateType, Date dBegin, Date dEnd,int time) throws Exception { List<String> listDate = new ArrayList<>(); listDate.add(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(dBegin)); Calendar calBegin = Calendar.getInstance(); calBegin.setTime(dBegin); Calendar calEnd = Calendar.getInstance(); calEnd.setTime(dEnd); while (calEnd.after(calBegin)) { if ("H".equals(dateType)){ calBegin.add(Calendar.HOUR, time); } if ("M".equals(dateType)){ calBegin.add(Calendar.MONTH, time); } if ("D".equals(dateType)){ calBegin.add(Calendar.DATE, time); } if ("N".equals(dateType)){ calBegin.add(Calendar.MINUTE , time); } if (calEnd.after(calBegin)){ listDate.add(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calBegin.getTime())); } else{ // listDate.add(new SimpleDateFormat("yyyy-MM-dd HH:mm").format(calEnd.getTime())); } } return listDate; } public static void main(String[] args) throws Exception { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); String startDate = "2021-05-07".concat(" 01:00"); String endDate = "2021-05-07".concat(" 03:00"); Date dBegin = sdf.parse(startDate); Date dEnd = sdf.parse(endDate); List<String> list = findDates("N", dBegin, dEnd,30); int size = list.size(); for (int i = 0; i < size-1; i++) { System.out.println("開始時間"+list.get(i)); System.out.println("開始時間"+list.get(i+1)); System.out.println(); } System.out.println("開始時間"+list.get(size-1)); System.out.println("開始時間"+endDate); } }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章