Java中的日期操作

关于日期操作

涉及其他操作的话,以后逐步完善

    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        Date date = calendar.getTime();
        //获取当前时间
        System.out.println("获取当前日期date:" + date);
        //获取当前年月日时分秒
        int yearNum = calendar.get(Calendar.YEAR);
        //获取月份从0开始计算,不是从1开始
        int monthNum = calendar.get(Calendar.MONTH);
        int dateNum = calendar.get(Calendar.DATE);
        int hourNum = calendar.get(Calendar.HOUR);
        int minuteNum = calendar.get(Calendar.MINUTE);
        int secondNum = calendar.get(Calendar.SECOND);
        System.out.println(yearNum + "||" + monthNum + "||" + dateNum);
        System.out.println(hourNum + "||" + minuteNum + "||" + secondNum);

        //月份是从0开始计算的,如果是一月的话获得的值是0,12月值是11
        calendar.add(Calendar.MONTH, 1);
        //按照指定的日期格式化
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:ss:mm");
        System.out.println(format.format(calendar.getTime()));
        //手动设置calendar的时间
        calendar.set(2000, 0, 12, 00, 01, 12);
        System.out.println(calendar.getTime());
        System.out.println("--------------------------------------------------------------");
        /**
         * add进行计算,年份也会跟着变化
         * roll进行计算,年份不会跟着变化,月份只会按周期循环变化
         */
        Calendar cal1 = Calendar.getInstance();
        cal1.set(2003, 7, 23, 0, 0, 0); // 2003-8-23
        cal1.add(Calendar.MONTH, 6); //2003-8-23 => 2004-2-23
        System.out.println(cal1.getTime());

        Calendar cal2 = Calendar.getInstance();
        cal2.set(2003, 7, 31, 0, 0, 0); // 2003-8-31
        // 因为进位到后月份改为2月,2月没有31日,自动变成29日
        cal2.add(Calendar.MONTH, 6); // 2003-8-31 => 2004-2-29
        System.out.println(cal2.getTime());

        Calendar cal3 = Calendar.getInstance();
        cal3.set(2003, 7, 23, 0, 0, 0); //2003-8-23
        // MONTH字段“进位”,但YEAR字段并不增加
        cal3.roll(Calendar.MONTH, 6); //2003-8-23 => 2003-2-23
        System.out.println(cal3.getTime());

        Calendar cal4 = Calendar.getInstance();
        cal4.set(2003, 7, 31, 0, 0, 0); //2003-8-31
        // MONTH字段“进位”后变成2,2月没有31日,
        // YEAR字段不会改变,2003年2月只有28天
        cal4.roll(Calendar.MONTH, 6); //2003-8-31 => 2003-2-28
        System.out.println(cal4.getTime());
        System.out.println("----------------延后计算时间----------------------------------------------");
        Calendar cal5 = Calendar.getInstance();
        //如果set的2月份没有31天,则自动往后推算一个月,按照三月份计算,所以打印出来是三月份
        cal5.set(2020, 1, 31);
        System.out.println("1.cal5:" + cal5.getTime());

    }

你可能感兴趣的:(Java中的日期操作)