这里有新鲜出炉的Java并发编程示例,程序狗速度看过来!
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。
这篇文章主要为大家详细介绍了java分割日期时间段代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
- /**
- * @author dy
- * @since 2016-09-18 & JDK 1.8.0_91
- */
- public class DateCalculate {
- static Logger logger = LoggerFactory.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 < String > 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 < String > findDates(String dateType, Date dBegin, Date dEnd) throws Exception {
- List < String > 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(Calendar.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 < String > list = cutDate("D", start, end);
- for (String str: list) {
- System.out.println(str);
- }
- }
- }
来源: http://www.phperz.com/article/17/1115/359925.html