java分割日期時(shí)間段代碼
本文實(shí)例為大家分享了java切割日期時(shí)間段代碼,供大家參考,具體內(nèi)容如下
/** * @author dy * @since 2016-09-18 & JDK 1.8.0_91 */ public class DateCalculate { static Logger logger = LoggerFactory.getLogger(DateCalculate.class); /** * 切割時(shí)間段 * * @param dateType 交易類型 M/D/H/N -->每月/每天/每小時(shí)/每分鐘 * @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); } } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- java獲取當(dāng)前時(shí)間和前一天日期(實(shí)現(xiàn)代碼)
- Java對(duì)日期Date類進(jìn)行加減運(yùn)算、年份加減月份加減、時(shí)間差等等
- Java日期時(shí)間字符串和毫秒相互轉(zhuǎn)換的方法
- java基于正則表達(dá)式實(shí)現(xiàn)時(shí)間日期的常用判斷操作實(shí)例
- Java使用DateFormatter格式化日期時(shí)間的方法示例
- Java中的日期和時(shí)間類以及Calendar類用法詳解
- java時(shí)間戳轉(zhuǎn)日期格式的實(shí)現(xiàn)代碼
- Java計(jì)算兩個(gè)日期時(shí)間之間的天數(shù)最簡(jiǎn)方法
- Java將日期類型Date時(shí)間戳轉(zhuǎn)換為MongoDB的時(shí)間類型數(shù)據(jù)
- Java核心教程之常見(jiàn)時(shí)間日期的處理方法
相關(guān)文章
java實(shí)現(xiàn)上傳文件類型檢測(cè)過(guò)程解析
這篇文章主要介紹了java實(shí)現(xiàn)上傳文件類型檢測(cè)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12使用Java實(shí)現(xiàn)qq郵箱發(fā)送郵件
這篇文章主要為大家詳細(xì)介紹了使用Java實(shí)現(xiàn)qq郵箱發(fā)送郵件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2010-05-05Redis緩存,泛型集合與json字符串的相互轉(zhuǎn)換實(shí)例
這篇文章主要介紹了Redis緩存,泛型集合與json字符串的相互轉(zhuǎn)換實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07一文了解Java讀寫(xiě)鎖ReentrantReadWriteLock的使用
ReentrantReadWriteLock稱為讀寫(xiě)鎖,它提供一個(gè)讀鎖,支持多個(gè)線程共享同一把鎖。這篇文章主要講解一下ReentrantReadWriteLock的使用和應(yīng)用場(chǎng)景,感興趣的可以了解一下2022-10-10Java線程通信中關(guān)于生產(chǎn)者與消費(fèi)者案例分析
這篇文章主要介紹了Java線程通信中關(guān)于生產(chǎn)者與消費(fèi)者案例,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09MyBatis的動(dòng)態(tài)SQL語(yǔ)句實(shí)現(xiàn)
這篇文章主要介紹了MyBatis的動(dòng)態(tài)SQL語(yǔ)句實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01Java避免死鎖_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
在有些情況下死鎖是可以避免的。本文將展示三種用于避免死鎖的技術(shù)。對(duì)java避免死鎖的相關(guān)知識(shí)感興趣的朋友一起通過(guò)本文學(xué)習(xí)吧2017-06-06SpringBoot 如何實(shí)現(xiàn)異步編程
在SpringBoot的日常開(kāi)發(fā)中,一般都是同步調(diào)用的,但實(shí)際中有很多場(chǎng)景非常適合使用異步來(lái)處理,本文就詳細(xì)的介紹一下SpringBoot 如何實(shí)現(xiàn)異步編程 ,具有一定的參考價(jià)值,感興趣的可以了解一下2021-12-12Java淺析代碼塊與構(gòu)造塊及靜態(tài)塊三者之間的關(guān)系
所謂代碼塊是指用"{}"括起來(lái)的一段代碼,根據(jù)其位置和聲明的不同,可以分為普通代碼塊、構(gòu)造塊、靜態(tài)塊、和同步代碼塊。如果在代碼塊前加上synchronized關(guān)鍵字,則此代碼塊就成為同步代碼塊2022-07-07