java中日历类:Calendar

Posted 苦海123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中日历类:Calendar相关的知识,希望对你有一定的参考价值。

Calendar日历类
该类为抽象类,将所有可能用到的时间信息封装为静态成员变量,方便获取时间属性,其位于java.util.Calendar, 其中的getInstance方法可以返回一个Calendar类的子类对象,可以直接使用次子类进行创建对象,而不需要自己使用直接已知子类或自行创建子类进行创建对象。

// 1.使用Calendar类需要先导包:
import java.util.Calendar;
import java.util.Date;

public class CalendarClass
    public static void main(String[] args)
        // 2.使用Calendar的静态方法getInstance方法来获得一个Calendar子类:
        Calendar getInfor = Calendar.getInstance();//父类指向一个子类,多态的使用
        // 3.打印sonCalendar:
        System.out.println(getInfor);
        /* java.util.GregorianCalendar[
            time=1641217850064,//毫秒值
            areFieldsSet=true,
            areAllFieldsSet=true,
            lenient=true,
            zone=sun.util.calendar.ZoneInfo[
                id="Asia/Shanghai",//时区
                offset=28800000,
                dstSavings=0,
                useDaylight=false,
                transitions=19,
                lastRule=null],
            firstDayOfWeek=1,
            minimalDaysInFirstWeek=1,
            ERA=1,
            YEAR=2022,//年
            MONTH=0,//月,西方月份从0开始,在中国只需在得到的数据上+1即可
            WEEK_OF_YEAR=2,//一年中的第几周
            WEEK_OF_MONTH=2,//一月中的第几周
            DAY_OF_MONTH=3,//一月中的第几天
            DAY_OF_YEAR=3,//一年中的第几天
            DAY_OF_WEEK=2,//一周中的第几天
            DAY_OF_WEEK_IN_MONTH=1,//
            AM_PM=1,//上下午
            HOUR=9,//时
            HOUR_OF_DAY=21,//一天中的第几小时
            MINUTE=50,//分
            SECOND=50,//秒
            MILLISECOND=64,
            ZONE_OFFSET=28800000,
            DST_OFFSET=0] */
        // 由上可以看到,此方法重写里toString方法,因为打印出来的并非地址值,而且可以看到里面包含了很多关于时间的信息。

        // 4.Calendar类下对象的常用方法:
        // 4-1:get(int field),传入日历的字段值,返回字段值对应的数据,这里字段可以是上面第3步中打印出的字段值(=左边的值为字段,返回等号右边的数据),如:
        int result = getInfor.get(Calendar.YEAR);
        System.out.println(result);//2022

        // 4-2:set(int field,int value),给指定的日历字段设置值,如:
        getInfor.set(Calendar.YEAR,1998);//set(1998,8,8)方法有一个重载形式,同时传入三个int型参数时为设置年月日
        int result2 = getInfor.get(Calendar.YEAR);
        System.out.println(result2);//1998,当使用set方法将getInfor对象中的年重新设置为1998后,再次获取年则为设置后的值。
        
        // 4-3:add(int field,int value),将指定字段的数据增加或减少int型的量,增加减少用正负表示,如:
        getInfor.add(Calendar.YEAR,-2);
        int result3 = getInfor.get(Calendar.YEAR);
        System.out.println(result3);//1996

        // 4-4:getTime(),将日历对象转换成日期对象,返回Date型,如:
        Date result4 = getInfor.getTime();
        System.out.println(result4);//Wed Jan 03 22:48:51 CST 1996
    ;
;

提示:本文图片等素材来源于网络,若有侵权,请发邮件至邮箱:810665436@qq.com联系笔者删除。
笔者:苦海

以上是关于java中日历类:Calendar的主要内容,如果未能解决你的问题,请参考以下文章

java Calendar日历类

在Java中如何用calendar类输入年和月份打印当月的日历

Java基础(java.util.Calendar 日历类)

Java_常用类14_Calendar类

Java中日期时间类Calendar

Java 使用Calendar类输出指定年份和月份的日历