時間處理(格式化、本日、本週、本月、本季度等)

依賴jar包

gradle方式

compile group:'com.gitee.zhtt',name:'great-javautils',version:'8.0.1-alpha.3'

maven方式

<dependency>
    <groupId>com.gitee.zhtt</groupId>
    <artifactId>great-javautils</artifactId>
    <version>8.0.1-alpha.3</version>
</dependency>

一、時間處理(DateTimeUtils)

1.一、獲取當前時間

@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秒

1.二、格式化

若是輸入的是字符串則轉爲日期類型,反之則轉爲字符串類型。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

1.三、格式化

有時將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

1.四、某天開始時間:getDayStartTime(param)

未傳參數返回當天開始時間,傳入正數返回當天以後第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

1.五、某周開始時間:getWeekStartTime(param)

未傳參數返回本週開始時間,傳入正數返回本週以後第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

1.六、某月開始時間:getMonthStartTime(param)

未傳參數返回本月開始時間,傳入正數返回本月以後第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

1.七、某季度開始時間:getMonthStartTime(param)

未傳參數返回本季度開始時間,傳入正數返回本季度以後第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

1.七、某季度開始時間:getMonthStartTime(param)

未傳參數返回本季度開始時間,傳入正數返回本季度以後第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

1.八、某年開始時間:getYearStartTime(param)

未傳參數返回本年開始時間,傳入正數返回本年以後第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
相關文章
相關標籤/搜索