第6章-第5节-Java中的Calendar类

1、日历类,Date中的很多方法都被Calendar中的方法取代:

侧重点:年、月、日、时、分、秒、...

类型:java.util.Calendar    抽象类

子类型:GregorianCalendar    具体类


获取日历对象的方式如下:

方式一:Calendar类的静态方法getInstance,得到当前的日历对象

方式二:使用GregorianCalendar的构造方法,常用构造方法如下

GregorianCalendar() 
          在具有默认语言环境的默认时区内使用当前时间构造一个默认的 GregorianCalendar。 
GregorianCalendar(int year, int month, int dayOfMonth) 
          在具有默认语言环境的默认时区内构造一个带有给定日期设置的 GregorianCalendar。 
GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute) 
          为具有默认语言环境的默认时区构造一个具有给定日期和时间设置的 GregorianCalendar。 
GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second) 
          为具有默认语言环境的默认时区构造一个具有给定日期和时间设置的 GregorianCalendar。
      

2、常用方法:

第一波:获取操作

int get(int field):返回给定日历字段的值。

第二波:设置操作

void set(int field, int value) 
          将给定的日历字段设置为给定值。 
void set(int year, int month, int date) 
          设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。 
void set(int year, int month, int date, int hourOfDay, int minute) 
          设置日历字段 YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY 和 MINUTE 的值。 
void set(int year, int month, int date, int hourOfDay, int minute, int second) 
          设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。 

第三波:类型转换操作

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

void setTime(Date date):使用给定的 Date 设置此 Calendar 的时间。

第四波:偏移操作

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

3、具体使用方法的测试代码:从test1()到test5()

public class TestCalendar {
    public static void main(String[] args) {
        //test1()到test5()是Calendar类常用的方法
        test1();
    }

    public static void test5() {
        /*
            偏移操作:
         */
        Calendar c = Calendar.getInstance();
        System.out.println(c);
        //需求1:得到100天以后的日历对象
        //c.add(Calendar.DATE, 100);

        //需求2:得到10分钟以前的日历对象
        c.add(Calendar.MINUTE, -10);
        System.out.println(c);
    }

    public static void test4() {
        /*
            类型转换操作:
         */
        Calendar c = Calendar.getInstance();
        //日历 -> 日期
        Date d = c.getTime();
        //日期 -> 时间戳
        long time = d.getTime();
        System.out.println(time);

        //时间戳 -> 日期
        //方式一:
        Date d2 = new Date(time);
        //方式二:
        d.setTime(time);

        //日期 -> 日历
        c.setTime(d2);

    }

    public static void test3() {
        /*
            设置操作
         */
        Calendar c = Calendar.getInstance();
        System.out.println(c);
        //需求1:将日历对象的年月日字段信息设置为2011年11月11日
        c.set(Calendar.YEAR, 2011);
        c.set(Calendar.MONTH, 10);
        c.set(Calendar.DATE, 11);
        System.out.println(c);

        //需求2:将日历对象的年月日字段信息设置为2012年12月12日
        c.set(2012, 11, 12);
        System.out.println(c);
    }

    public static void test2() {
        /*
            获取操作:
         */
        Calendar c = Calendar.getInstance();
        //需求:得到年、月、日的信息,打印看效果
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH) + 1;
        int day = c.get(Calendar.DATE);
        System.out.println(year + "年" + month + "月" + day + "日");
    }

    public static void test1() {
        //获取当前的日历对象
        Calendar c1 = Calendar.getInstance();
        Calendar c2 = new GregorianCalendar();
        System.out.println(c1);
        System.out.println(c2);
    }
}

本电子书目录:《Java基础的重点知识点全集》

  • 24
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zwarwolf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值