java中三種獲取時間的方式

java有三種方式可以獲取當前時間(目前我用到的,若有其他見解,望不吝賜教)

  1. System.currentTimeMillis() :返回類型爲Long,自1970年1月1日0時起的毫秒數
  2. Date:進入到源碼可以看到其實就是相當於Date(System.currentTimeMillis())
  3. Calendar:獲取當前系統時間,其中的Calendar.YEAR等方法代替了Date中的getYear等方法
    注意:
    Calendar中的獲取當前月份的方法:Calendar.MONTH 底層是從0開始計算,所以獲取的月份需要加1;
    Calendar中的獲取當前周的第幾天的方法:Calendar.DAY_OF_WEEK 底層獲取一週中的第幾天是從週日開始的,所以當前一週中的第幾天需要減1;

下面是針對此三種方式的測試:

		/*
         * @description: 測試System.currentTimeMillis() Date  獲取時間的區別
         */
        SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Long mills = System.currentTimeMillis();
        System.out.println("System.currentTimeMillis():mills=====>" + mills);
        String currentStr = dateformat.format(System.currentTimeMillis());
        System.out.println("System.currentTimeMillis():currentStr=====>" + currentStr);

        Date date = new Date();
        System.out.println("Date():date=====>" + date);
        String dateStr = dateformat.format(date);
        System.out.println("Date():dateStr=====>" + dateStr);

        /*
         * @description: 測試Calendar
         */
        Calendar cal = Calendar.getInstance();
        int dayCal = cal.get(Calendar.DATE);
        int monthCal = cal.get(Calendar.MONTH) + 1;
        int yearCal = cal.get(Calendar.YEAR);
        int day_week = cal.get(Calendar.DAY_OF_WEEK);
        int day_month = cal.get(Calendar.DAY_OF_MONTH);
        int day_year = cal.get(Calendar.DAY_OF_YEAR);

        System.out.println("Calendar:time======>" + cal.getTime());
        System.out.println("Calendar:dayCal======> " + dayCal);
        System.out.println("Calendar:monthCal======>" + monthCal);
        System.out.println("Calendar:yearCal======>" + yearCal);
        System.out.println("Calendar:day_week======>" + day_week);  // 星期日爲一週的第一天輸出爲 1,星期一輸出爲 2,以此類推
        System.out.println("Calendar:day_month======>" + day_month);
        System.out.println("Calendar:day_year======>" + day_year);

執行結果:
在這裏插入圖片描述
Calendar的計算使用:

/*
         * @description: Calendar計算
         */
        //過去七天
        cal.setTime(new Date());
        cal.add(Calendar.DATE, - 7);
        Date d = cal.getTime();
        String day = dateformat.format(d);
        System.out.println("Calendar:add()過去七天======>" + day);
        //過去一月
        cal.setTime(new Date());
        cal.add(Calendar.MONTH, -1);
        Date m = cal.getTime();
        String mon = dateformat.format(m);
        System.out.println("Calendar:add()過去一個月======>" + mon);
        //當天的開始時間
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        String daystart = format.format(cal.getTime())+" 00:00:00";
        System.out.println("Calendar:add()當天的開始時間======>" + daystart);
        //當天的截止時間
        String dayend = format.format(cal.getTime())+" 23:59:59";
        System.out.println("Calendar:add()當天的截止時間======>" + dayend);

執行結果:
在這裏插入圖片描述
相關Calendar的其他計算,可根據上邊方式進行使用。

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