java分割日期时间段代码

网友投稿 295 2023-07-06


java分割日期时间段代码

本文实例为大家分享了java切割日期时间段代码,供大家参考,具体内容如下

/**

* @author dy

* @since 2016-09-18 & JDK 1.8.0_91

*/

GrQZPtpublic class DateCalculate {

static Logger logger = LoggeGrQZPtrFactory.getLogger(DateCalculate.class);

/**

* 切割时间段

*

* @param dateType 交易类型 M/D/H/N -->每月/每天/每小时/每分钟

* @param start yyyy-MM-dd HH:mm:ss

* @param end yyyy-MM-dd HH:mm:ss

* @return

*/

public static List cutDate(String dateType, String start, String end) {

try {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date dBegin = sdf.parse(start);

Date dEnd = sdf.parse(end);

return findDates(dateType, dBegin, dEnd);

} catch (Exception e) {

logger.error(e.getMessage(), e);

}

return null;

}

public static List findDates(String dateType, Date dBegin, Date dEnd) throws Exception {

List listDate = new ArrayList<>();

Calendar calBegin = Calendar.getInstance();

calBegin.setTime(dBegin);

Calendar calEnd = Calendar.getInstance();

calEnd.setTime(dEnd);

while (calEnd.after(calBegin)) {

switch (dateType) {

case "M":

calBegin.add(Calendar.MONTH, 1);

break;

case "D":

calBegin.add(Calendar.DAY_OF_YEAR, 1);break;

case "H":

calBegin.add(Calhttp://endar.HOUR, 1);break;

case "N":

calBegin.add(Calendar.SECOND, 1);break;

}

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:ss").format(calEnd.getTime()));

}

return listDate;

}

public static void main(String[] args) {

String start = "2016-02-01 00:00:00";

String end = "2016-03-02 00:00:00";

List list = cutDate("D", start, end);

for (String str :list){

System.out.println(str);

}

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java Socket聊天室编程(一)之利用socket实现聊天之消息推送
下一篇:vue从使用到源码实现教程详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~