225/226Calendar类介绍_获取对象的方式和Calen类的常用成员方法

Calendar类介绍,获取对象的方式

Calendar类是一个抽象类,它为特定瞬间与一组诸如(YEAR、MONTH、DAY_OF_MONTH、HOUR )I等旦历字之间的转换提供了一些方法,并为操作日历字段

(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间1970年1月1日的00:00:00.00,格里

高利历)的偏移量。

该类还为实现包范围外的具体日历系统提供了其他字段和方法。这些字段和方法被定义为 protected

 与其他语言环境敏感类一样, Calendar提供了一个类方法 get Inst ance,以获得此类型的一个通用的对象。 Calendar的 get Inst ance方法返回一个

alendar对象,其日历字段已由当前日期和时间初始化:

Calendar对象能够生成为特定语言和日历风格实现日期-时间格式化所需的所有日历字段值,例如,日语-格里高里历,日语传统日历。 Calendar定义

了某些日历字段返回值的范围,以及这些值的含义。

例如,对于所有日历,日历系统第一个月的值是MoH== JANUARY。

其他值是由具体子类(例如ERBA)定义的。有关此内容的细节,请参阅每个字段的文档和子类文档。

 

java.util.calendar类:日历类

caLendar类是一个抽象类,里边提供了很多操作日历字段的方法(YEAR、MONTH、DAY_OF_MONTH、HOUR )

calendar类无法直接创建对象使用,里边有一个静态方法叫getInstance(),该方法返回了caLendar类的子类对象

static Calendar getInstance()使用黑默认时区和语言环境获得一个日历。

    public static void main(String[] args) {
Calendar instance = Calendar.getInstance();
System.out.println(instance);
}
}


结果:
java.util.GregorianCalendar[time=1657074477173,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun
.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,la
stRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2022,MONTH=6,WEEK_OF_YEAR=28,WEEK_OF_MONTH
=2,DAY_OF_MONTH=6,DAY_OF_YEAR=187,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=10,HOUR_OF_DAY=10,MINUTE=
27,SECOND=57,MILLISECOND=173,ZONE_OFFSET=28800000,DST_OFFSET=0]


 

备注:

  在西方的星期,开始为周日,中国为周一

  在Calendar类中,月份的表示是以0-11代表的是1-12月

  日期是有大小关系的,时间靠后,时间越大。

Calen类的常用成员方法

常用方法:根据 Calendar类的AP文档,常用方法有

public int get( int fie1d):返定日历字段的值。

public void set( int field, int value):将给定的日历字段设置为给定值

public abstract void add (int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量

public Date gettime():返回一个表示此 Calendar时间值(从历元到现在的毫秒偏移量)的Date对象

 /*
    成员方法
        public int get( int fie1d):返定日历字段的值。
        public void set( int field, int value):将给定的日历字段设置为给定值
        public abstract void add (int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量
        public Date gettime():返回一个表示此 Calendar时间值(从历元到现在的毫秒偏移量)的Date对象
    成员方法的参数:
        in field:日历类的字段,可以使用Calendar类的静态成员变量获取
     */

    public static void main(String[] args) {
        demo();
        demo01();
        demo02();


    }
    /*
    public int get( int field):返回给定日历字段的值参数:传递指定的日历字段(YEAR, MONTH.)返回值:日历字段代表具体的值
     */
    private static void demo() {
    //使用geiInstance方法获取Calendar对象
        Calendar c = Calendar.getInstance();
        int i = c.get(Calendar.YEAR);
        System.out.println(""+i);

        int i1 = c.get(Calendar.MONTH);
        System.out.print(""+(i1+1));

        int i2 = c.get(Calendar.DATE);
        System.out.println(""+i2);

        int i3 = c.get(Calendar.HOUR);
        System.out.print(""+i3);

        int i4 = c.get(Calendar.MINUTE);
        System.out.print("-分"+i4);

        int i5 = c.get(Calendar.SECOND);
        System.out.print("-秒"+i5);
    }

    /*
    public void set( int field, int value):将给定的日历字段设置为给定值。参数
    参数:int field:传递指定的日历字段(YEAR, MONTH)int value:传递的字段设置的具体的值
     */
    private static void demo01() {
        //使用geiInstance方法获取Calendar对象
        Calendar c = Calendar.getInstance();
        //设置年为1999
        c.set(Calendar.YEAR,1999);
        //设置月为1
        c.set(Calendar.MONTH,1);
        //设置日为1
        c.set(Calendar.DATE,1);
        //可以同时设置年月日
        c.set(1999,12,12);

        int A1 = c.get(Calendar.YEAR);
        System.out.println(""+A1);

        int A2 = c.get(Calendar.MONTH);
        System.out.print(""+A2);

        int A3 = c.get(Calendar.DATE);
        System.out.println(""+A3);
    }
/*
public abstract void add (int field, int amount):
根据日历的规则,为给定的日历字段添加或减去指定的时间量。
把指定的字段增加/减少指定的值参数:int field:;
传递指定的日历字段(YEAR, MONTH.)int amount:
增加/减少的值正数:增加负数:减少
 */
    private static void demo02() {
        //使用geiInstance方法获取Calendar对象
        Calendar c = Calendar.getInstance();
        c.add(Calendar . YEAR, 2);//把年增加2年
        c.add(Calendar.MONTH, -3);//把月减少3个月
        c.add(Calendar.DATE,+5);//天数加五
        int year = c.get(Calendar . YEAR);
        System.out.println(year);
        int month = c.get(Calendar.MONTH);
        System.out.println(month+1);//西方的月份6-11东方:1-12
        int date = c.get(Calendar. DAY_OF_MONTH);
        System.out.println(date);

    }
}

 

posted @ 2022-07-06 13:05  ja不会va  阅读(109)  评论(0)    收藏  举报