java Calendar獲取某個時間上個月的時間

java8的時間api很好用,但有的場景用Calendar也是很合適的

 

 /**
     * 從當前時間獲取上個月的第一天和最後一天
     */
    private void getPreMonthDate(String startDate) throws Exception {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Calendar c = getPreMonth(startDate);

        //獲取某月最小天數
        int firstDay = c.getActualMinimum(Calendar.DAY_OF_MONTH);
        //設置日曆中月份的最小天數
        c.set(Calendar.DAY_OF_MONTH, firstDay);
        // 上個月第一天
        String startTime = format.format(c.getTime());

        
        Calendar c2 = getPreMonth(startDate);
        int lastDay = c2.getActualMaximum(Calendar.DAY_OF_MONTH);
        c2.set(Calendar.DAY_OF_MONTH, lastDay);
        String endTime = format.format(c2.getTime());


    }

    /**
     * 從當前時間"yyyy-MM-dd"格式獲取上個月的時間
     */
    private Calendar getPreMonth(String startDate) throws Exception{
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Calendar c = Calendar.getInstance();
        Date date = format.parse(startDate);
        c.setTime(date);
        c.add(Calendar.MONTH, -1);
        return c;
    }
獲取上週的時間也是一個道理
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date date = format.parse("2020-05-01");
c.setTime(date);
c.add(Calendar.DATE, -7);
format.format(c.getTime());

 

 

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