java Calendar 入门【转】

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
        
        Calendar c = Calendar.getInstance();
        System.out.println(sdf.format(c.getTime()));  
        c.add(Calendar.DAY_OF_YEAR, -1);
       
        System.out.println(sdf.format(c.getTime()));  
      
        c.set(2018, 12, 20);// 月份是从0开始的,所以11表示12月  
        c.add(Calendar.YEAR, -1); // 年份减1  
        c.add(Calendar.YEAR, +1); // 年份加1  
        c.add(Calendar.MONTH, -1);// 月份减1  
        c.add(Calendar.DATE, -1);// 日期减1  
        c.set(Calendar.HOUR, 1);//设置时为  13点
        c.set(Calendar.MINUTE, 45);//设置分为 45
        c.set(Calendar.SECOND, 30);//设置 秒为30
        System.out.println(sdf.format(c.getTime()));

 set(int field, int value) - 是用来设置"年/月/日/小时/分钟/秒/微秒"等值

add(int field, int amount)  add 可以对 Calendar 的字段进行计算。如果需要减去值,那么使用负数值就可以了,如 add(field, -value)。  可以自动修正

/**
     * 取指定时间的日期(只剩年月日),把时分秒置0
     * @param date
     * @return
     */
    public static final Date getCurrentDay(Date date) {
        Calendar lastDate = Calendar.getInstance();
        lastDate.setTime(date);
        int yearInt = lastDate.get(Calendar.YEAR);
        int monthInt = lastDate.get(Calendar.MONTH);
        int dateInt = lastDate.get(Calendar.DATE);
        lastDate.set(5, 1);
        lastDate.set(Calendar.YEAR, yearInt);
        lastDate.set(Calendar.MONTH, monthInt);
        lastDate.set(Calendar.DATE , dateInt);
        lastDate.set(Calendar.HOUR_OF_DAY, 0);
        lastDate.set(Calendar.MINUTE, 0);
        lastDate.set(Calendar.SECOND, 0);
        lastDate.set(Calendar.MILLISECOND, 0);
        return lastDate.getTime();
    }

完全引用自: https://www.cnblogs.com/zimublog/p/8610856.html

原文地址:https://www.cnblogs.com/whatlonelytear/p/8628307.html