JAVA工具類——Date的日常使用總結

JAVA工具類——Date

一.格式化日期類型

1.Date轉String

		//參數pattern可以任意(參數中有一下字符即可)如:
        //1.yyyy年-MM月-dd日
        //2.HH:mm:ss
        //3......
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date=new Date();
        String nowTime=sdf.format(date);
        System.out.println(nowTime);

2.String轉Date

		//若要轉換精確到秒,則使用該pattern
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String neededParseTime="2019-08-30 22:44:21";
        try {
            Date nowTime = sdf.parse(neededParseTime);
            System.out.println(nowTime);
        } catch (ParseException e) {
            e.printStackTrace();
        }

輸出結果:Fri Aug 30 22:44:21 CST 2019

二.日期之間的比較

1.Date工具類的before(),after()方法

		//before 理解爲 “<”,after 理解爲 “>”。
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String timeOne="2019-08-30 22:44:21";
        String timeTwo="2019-09-30 22:44:21";
        try {
            Date comparedTimeOne = sdf.parse(TimeOne);
            Date comparedTimeTwo = sdf.parse(TimeTwo);
            boolean result1=comparedTimeOne.before(comparedTimeTwo);
            boolean result2=comparedTimeTwo.before(comparedTimeOne);
            boolean result3=comparedTimeOne.after(comparedTimeTwo);
            boolean result4=comparedTimeTwo.after(comparedTimeOne);
            System.out.println(result1+" "+result2+" "+result3+" "+result4);
        } catch (ParseException e) {
            e.printStackTrace();
        }

運行結果:true false false true

2.Date工具類的getTime()方法

		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String timeOne="2019-08-30 22:44:21";
        String timeTwo="2019-09-30 22:44:21";
        try {
            Date comparedTimeOne = sdf.parse(timeOne);
            Date comparedTimeTwo = sdf.parse(timeTwo);
            long timeMillisecondOne = comparedTimeOne.getTime();
            long timeMillisecondTwo = comparedTimeTwo.getTime();
            boolean result = timeMillisecondOne > timeMillisecondTwo;
            System.out.println("毫秒數比較結果:"+result);
        } catch (ParseException e) {
            e.printStackTrace();
        }

運行結果:毫秒數比較結果:false

3.String的compareTo()方法

		//保持兩個字符串格式一致,
        //可以理解爲 compareTo 左邊字符串中每一位與右邊字符串中對應位數做差
        //結果爲“—”,前邊時間小;反之,前邊時間大。
        String timeOne="2019-06-30 22:44:21";
        String timeTwo="2019-09-30 22:44:21";

        int result=timeOne.compareTo(timeTwo);
        System.out.println(result);

運行結果:-3
三.獲取一個月的最後一天

		//獲取一個月中的最後一天
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        // 定義當前期間的1號的date對象
        Date date = null;
        try {
            date = sdf.parse("20190201");
        } catch (ParseException e) {
            e.printStackTrace();
        }
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.MONTH,1);//月增加1天;若獲取下一個月最後一天,1改2即可
        calendar.add(Calendar.DAY_OF_MONTH,-1);//日期倒數一日,既得到本月最後一天
        Date voucherDate = calendar.getTime();
        System.out.println(sdf.format(voucherDate));

運行結果:20190228

四,獲取兩個日期間隔天數

		String dateStr1="2016-02-01";
        String dateStr2="2019-08-31";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        Date parseDate1=null;
        Date parseDate2=null;
        try {
            parseDate1 = sdf.parse(dateStr1);
            parseDate2 = sdf.parse(dateStr2);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        //計算兩個日期的毫秒數,他們的差除以一天的毫秒數
        int days = (int) ((parseDate2.getTime() - parseDate1.getTime()) / (1000*3600*24));
        System.out.println("間隔天數:"+days);

運行結果:間隔天數:1102

歡迎各路大神指正,後續用到哪些時間操作繼續更新。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章