将俩个一个时间段按照固定时间拆分,比如把给定时间按照一小时拆分拆分
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);
}
}
不恋尘世浮华,不写红尘纷扰
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理