java.util.Calendar 类

来源:互联网 发布:正规的淘宝加盟公司 编辑:程序博客网 时间:2024/05/01 03:40

 从JDK1.1版本开始,在处理日期和时间时,系统推荐使用Calendar类进行实现。在设计上,Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些,下面就介绍一下Calendar类的使用。

    Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。

    1、使用Calendar类代表当前时间

    Calendar c = Calendar.getInstance();

    由于Calendar类是抽象类,且Calendar类的构造方法是protected的,所以无法使用Calendar类的构造方法来创建对象,API中提供了getInstance方法用来创建对象。

    使用该方法获得的Calendar对象就代表当前的系统时间,由于Calendar类toString实现的没有Date类那么直观,所以直接输出Calendar类的对象意义不大。

    2、使用Calendar类代表指定的时间

    Calendar c1 = Calendar.getInstance();

    c1.set(2009, 3 - 1, 9);

    使用Calendar类代表特定的时间,需要首先创建一个Calendar的对象,然后再设定该对象中的年月日参数来完成。

    set方法的声明为:

    public final void set(int year,int month,int date)

    以上示例代码设置的时间为2009年3月9日,其参数的结构和Date类不一样。Calendar类中年份的数值直接书写,月份的值为实际的月份值减1,日期的值就是实际的日期值。

    如果只设定某个字段,例如日期的值,则可以使用如下set方法:

    public void set(int field,int value)

    在该方法中,参数field代表要设置的字段的类型,常见类型如下:

         Calendar.YEAR——年份

         Calendar.MONTH——月份

         Calendar.DATE——日期

         Calendar.DAY_OF_MONTH——日期,和上面的字段完全相同

         Calendar.HOUR——12小时制的小时数

         Calendar.HOUR_OF_DAY——24小时制的小时数

         Calendar.MINUTE——分钟

         Calendar.SECOND——秒

         Calendar.DAY_OF_WEEK——星期几

    后续的参数value代表,设置成的值。例如:

    c1.set(Calendar.DATE,10);

    该代码的作用是将c1对象代表的时间中日期设置为10号,其它所有的数值会被重新计算,例如星期几以及对应的相对时间数值等。

    3、获得Calendar类中的信息

                   Calendar c2 = Calendar.getInstance();

                   //年份

                   int year = c2.get(Calendar.YEAR);

                   //月份

                   int month = c2.get(Calendar.MONTH) + 1;

                   //日期

                   int date = c2.get(Calendar.DATE);

                   //小时

                   int hour = c2.get(Calendar.HOUR_OF_DAY);

                   //分钟

                   int minute = c2.get(Calendar.MINUTE);

                   //

                   int second = c2.get(Calendar.SECOND);

                   //星期几

                   int day = c2.get(Calendar.DAY_OF_WEEK);

                   System.out.println("年份:" + year);

                   System.out.println("月份:" + month);

                   System.out.println("日期:" + date);

                   System.out.println("小时:" + hour);

                   System.out.println("分钟:" + minute);

                   System.out.println("秒:" + second);

                   System.out.println("星期:" + day);

    使用Calendar类中的get方法可以获得Calendar对象中对应的信息,get方法的声明如下:

public int get(int field)

    其中参数field代表需要获得的字段的值,字段说明和上面的set方法保持一致。需要说明的是,获得的月份为实际的月份值减1,获得的星期的值和Date类不一样。在Calendar类中,周日是1,周一是2,周二是3,依次类推。

原创粉丝点击