compile group:'com.gitee.zhtt',name:'great-javautils',version:'8.0.1-alpha.3'
<dependency> <groupId>com.gitee.zhtt</groupId> <artifactId>great-javautils</artifactId> <version>8.0.1-alpha.3</version> </dependency>
@Test public void getTime(){ //獲取當前時間 Date date = DateTimeUtils.getTime(); System.out.printf("默認格式化:%s\n",DateTimeUtils.format(date)); System.out.printf("指定格式化:%s\n",DateTimeUtils.format(date,"yyyy年MM月dd日")); System.out.printf("指定格式化:%s\n",DateTimeUtils.format(date,DateTimeUtils.ymdhms_cn)); }
打印結果java
默認格式化:2019-07-08 15:39:10 指定格式化:2019年07月08日 指定格式化:2019年07月08日 15時39分10秒
若是輸入的是字符串則轉爲日期類型,反之則轉爲字符串類型。git
@Test public void format(){ //格式化 String dateStr = "2019-07-07"; Date date = new Date(); try { Object format1 = DateTimeUtils.format(dateStr); Object format2 = DateTimeUtils.format(date); Object format3 = DateTimeUtils.format(date,DateTimeUtils.ymdhm); System.out.println(format1); System.out.println(format2); System.out.println(format3); } catch (ParseException e) { e.printStackTrace(); } }
打印結果數據庫
Sun Jul 07 00:00:00 CST 2019 2019-07-08 15:52:41 2019-07-08 15:52
有時將excel中的數據導入數據庫時,可是用戶提供的excel中的日期一列格式各類各樣maven
@Test public void format2() throws ParseException { //格式化 String[] dateStrs = {"2019", "2019-07", "2019-07-07", "2019-07-07 11", "2019-07-07 11:22", "2019-07-07 11:22:11", "2019年11月07日", "2019年11月07日 12時"}; for(String str:dateStrs){ Date date = DateTimeUtils.format(str); System.out.println(str+" => "+DateTimeUtils.format(date)); } }
打印結果gradle
2019 => 2019-01-01 00:00:00 2019-07 => 2019-07-01 00:00:00 2019-07-07 => 2019-07-07 00:00:00 2019-07-07 11 => 2019-07-07 11:00:00 2019-07-07 11:22 => 2019-07-07 11:22:00 2019-07-07 11:22:11 => 2019-07-07 11:22:11 2019年11月07日 => 2019-11-07 00:00:00 2019年11月07日 12時 => 2019-11-07 12:00:00
未傳參數返回當天開始時間,傳入正數返回當天以後第N天的開始時間,傳入負數返回當天以前第N天的開始時間。excel
@Test public void getDayStartTime() throws ParseException { //當天開始時間 Date start1 = DateTimeUtils.getDayStartTime(); String start1Str = DateTimeUtils.format(start1); //某天開始時間 Date start2 = DateTimeUtils.format("2019-07-07 12:22:22"); Date start2date = DateTimeUtils.getDayStartTime(start2); String start2Str = DateTimeUtils.format(start2date); //30天后的開始時間 Date start3 = DateTimeUtils.getDayStartTime(30); String start3Str = DateTimeUtils.format(start3); //30天前的開始時間 Date start4 = DateTimeUtils.getDayStartTime(-30); String start4Str = DateTimeUtils.format(start4); System.out.println("當天開始時間:"+start1Str); System.out.println("某天開始時間:"+start2Str); System.out.println("30天后的開始時間:"+start3Str); System.out.println("30天前的開始時間:"+start4Str); }
打印結果code
當天開始時間:2019-07-08 00:00:00 某天開始時間:2019-07-07 00:00:00 30天后的開始時間:2019-08-07 00:00:00 30天前的開始時間:2019-06-08 00:00:00
未傳參數返回本週開始時間,傳入正數返回本週以後第N周的開始時間,傳入負數返回本週以前第N周的開始時間。orm
@Test public void getWeekStartTime(){ //本週開始時間 Date start1 = DateTimeUtils.getWeekStartTime(); String start1Str = DateTimeUtils.format(start1); System.out.println("本週開始時間:"+start1Str); //上週的開始時間 Date start3 = DateTimeUtils.getWeekStartTime(1); String start3Str = DateTimeUtils.format(start3); System.out.println("上週的開始時間:"+start3Str); //下週的開始時間 Date start4 = DateTimeUtils.getWeekStartTime(-1); String start4Str = DateTimeUtils.format(start4); System.out.println("下週的開始時間:"+start4Str); }
打印結果字符串
本週開始時間:2019-07-08 00:00:00 上週的開始時間:2019-07-01 00:00:00 下週的開始時間:2019-07-15 00:00:00
未傳參數返回本月開始時間,傳入正數返回本月以後第N月的開始時間,傳入負數返回本月以前第N月的開始時間。get
@Test public void getMonthStartTime(){ //本月開始時間 Date start1 = DateTimeUtils.getMonthStartTime(); String start1Str = DateTimeUtils.format(start1); System.out.println("本月開始時間:"+start1Str); //上月的開始時間 Date start3 = DateTimeUtils.getMonthStartTime(1); String start3Str = DateTimeUtils.format(start3); System.out.println("上月的開始時間:"+start3Str); //下月的開始時間 Date start4 = DateTimeUtils.getMonthStartTime(-1); String start4Str = DateTimeUtils.format(start4); System.out.println("下月的開始時間:"+start4Str); }
打印結果
本月開始時間:2019-07-01 00:00:00 上月的開始時間:2019-08-01 00:00:00 下月的開始時間:2019-06-01 00:00:00
未傳參數返回本季度開始時間,傳入正數返回本季度以後第N季度的開始時間,傳入負數返回本季度以前第N季度的開始時間。
@Test public void getQuarterStartTime(){ //本季度開始時間 Date start1 = DateTimeUtils.getQuarterStartTime(); String start1Str = DateTimeUtils.format(start1); System.out.println("本季度開始時間:"+start1Str); //上季度的開始時間 Date start3 = DateTimeUtils.getQuarterStartTime(-1); String start3Str = DateTimeUtils.format(start3); System.out.println("上季度的開始時間:"+start3Str); //下季度的開始時間 Date start4 = DateTimeUtils.getQuarterStartTime(1); String start4Str = DateTimeUtils.format(start4); System.out.println("下季度的開始時間:"+start4Str); }
打印結果
本季度開始時間:2019-07-01 00:00:00 上季度的開始時間:2019-04-01 00:00:00 下季度的開始時間:2019-10-01 00:00:00
未傳參數返回本季度開始時間,傳入正數返回本季度以後第N季度的開始時間,傳入負數返回本季度以前第N季度的開始時間。
@Test public void getQuarterStartTime(){ //本季度開始時間 Date start1 = DateTimeUtils.getQuarterStartTime(); String start1Str = DateTimeUtils.format(start1); System.out.println("本季度開始時間:"+start1Str); //上季度的開始時間 Date start3 = DateTimeUtils.getQuarterStartTime(-1); String start3Str = DateTimeUtils.format(start3); System.out.println("上季度的開始時間:"+start3Str); //下季度的開始時間 Date start4 = DateTimeUtils.getQuarterStartTime(1); String start4Str = DateTimeUtils.format(start4); System.out.println("下季度的開始時間:"+start4Str); }
打印結果
本季度開始時間:2019-07-01 00:00:00 上季度的開始時間:2019-04-01 00:00:00 下季度的開始時間:2019-10-01 00:00:00
未傳參數返回本年開始時間,傳入正數返回本年以後第N年的開始時間,傳入負數返回本年以前第N年的開始時間。
@Test public void getYearStartTime(){ //本季度開始時間 Date start1 = DateTimeUtils.getYearStartTime(); String start1Str = DateTimeUtils.format(start1); System.out.println("本年開始時間:"+start1Str); //上季度的開始時間 Date start3 = DateTimeUtils.getYearStartTime(-1); String start3Str = DateTimeUtils.format(start3); System.out.println("上年的開始時間:"+start3Str); //下季度的開始時間 Date start4 = DateTimeUtils.getYearStartTime(1); String start4Str = DateTimeUtils.format(start4); System.out.println("下年的開始時間:"+start4Str); }
打印結果
本年開始時間:2019-01-01 00:00:00 上年的開始時間:2018-01-01 00:00:00 下年的開始時間:2020-01-01 00:00:00