美文网首页
Calendar类与GregorianCalendar类

Calendar类与GregorianCalendar类

作者: kanaSki | 来源:发表于2019-06-17 22:00 被阅读0次

Calendar类是抽象类,提供提起计算相关功能。GregorianCalendar是其具体子类。

        // 当前时间
        GregorianCalendar gregorianCalendar = new GregorianCalendar();
        System.out.println(gregorianCalendar);
        // 年,月,日,时,分,秒
        Calendar calendar = new GregorianCalendar(2019, 6, 17, 21, 46, 39);
        System.out.println(calendar);
        // 获得年份
        calendar.get(Calendar.YEAR);
        // 获得月份
        calendar.get(Calendar.MONTH);  // 0-11表示对应月份,0代表一月,以此类推。注:使用SimpleDateFormat在String与Date类间互相转换时,无此规律。
        // 获得星期
        calendar.get(Calendar.DAY_OF_WEEK); // 1-7 1表示星期日,2表示星期一
        // 获得日
        calendar.get(Calendar.DATE);    // 也可以使用Calendar.DAY_OF_MONTH

        Calendar calendar1 = new GregorianCalendar();
        calendar1.set(Calendar.YEAR, 2015);

        // 日期计算
        Calendar calendar2 = new GregorianCalendar();
        // 当前日期向后100天
        calendar2.add(Calendar.DATE, 100);

        // 日期对象与时间对象的转化
        Date date = calendar2.getTime();
        Calendar calendar3 = new GregorianCalendar();
        calendar3.setTime(new Date());
        calendar3.getActualMaximum(Calendar.DATE); // 获得当月日期最大值

计算日期差

                Calendar calendar1 = new GregorianCalendar();
                Calendar calendar2 = new GregorianCalendar();
                String replaceStr = "";
                SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd");
                Date date1 = sdf.parse(dateStr1);
                Date date2 = sdf.parse(dateStr2);
                calendar1.setTime(date1);
                calendar2.setTime(date2);
                // 开始计算日期差
                if (calendar1.after(calendar2)) {
                    Calendar temp = calendar1;
                    calendar1 = calendar2;
                    calendar2 = temp;
                }
                int days = calendar2.get(Calendar.DAY_OF_YEAR) - calendar1.get(Calendar.DAY_OF_YEAR);
                while (calendar1.get(Calendar.YEAR) != calendar2.get(Calendar.YEAR)) {
                    days += calendar1.get(Calendar.DAY_OF_YEAR);
                    calendar1.add(Calendar.YEAR, 1);
                }

相关文章

网友评论

      本文标题:Calendar类与GregorianCalendar类

      本文链接:https://www.haomeiwen.com/subject/soqtqctx.html