详细了解Calendar类

java.util.Calendar:日历类

  • Calendar类是一个抽象类,里面提供了很多操作日历字段的方法(DAY_OF_YEAR,DAY_OF_MONTH,DAY_OF_WEEK)

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

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

package com.Calendar;

import java.util.Calendar;

/*
   java.util.Calendar:日历类
   Calendar类是一个抽象类,里面提供了很多操作日历字段的方法(DAY_OF_YEAR,DAY_OF_MONTH,DAY_OF_WEEK)

   Calendar类无法直接创建对象使用,里面有一个静态方法叫getInstance(),该方法返回了Calendar类的子类对象
   static Calendar getInstance()使用默认时区和语言环境获得一个日历。
 */
public class Demo01Calendar {

    public static void main(String[] args) {
        Calendar c = java.util.Calendar.getInstance();  //多态
        System.out.println(c);  //ava.util.GregorianCalendar[time=1592227896899...

    }
}

Calendar类的成员方法:

  • public int get(int field) :返回给定日历字段的值。
  • public void set(int field,int value) :将给定的日历字段设置为的给定的值。
  • public abstract void add(int field,int amount) :根据日历的规则,为给定的日历字段添加或减去指定的时间量。
  • public Date getTime() :返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。

成员方法的参数:

  • int field:日历类的字段,可以使用Calendar类的静态成员变量获取

  • public static final int YEAR = 1; 年

  • public static final int MONTH = 2; 月

  • public static final int DATE = 5; 月中的某一天

  • public static final int DAY_OF_MONTH = 5; 月中的某一天

  • public static final int HOUR = 10; 时

  • public static final int MINUTE = 12; 分

  • public static final int SECOND = 13; 秒
    代码02:

package com.Calendar;

import java.util.Calendar;
import java.util.Date;

public class Demo02Calendar {
    public static void main(String[] args) {
//        demo01();
//        demo02();
//        demo03();
        demo04();
    }

    /*
     public Date getTime() :返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。
     把日历对象转换为日期对象
     */

    private static void demo04() {
        //使用getInstance方法获取Calendar对象
        Calendar c  = Calendar.getInstance();

        Date time = c.getTime();
        System.out.println(time); //Mon Jun 15 21:23:14 CST 2020

    }

    /*
   - public abstract void add(int field,int amount) :根据日历的规则,为给定的日历字段添加或减去指定的时间量。
      把指定的字段增加/减少指定的值
      参数:
          int field:传递指定的日历字段(YEAR,MONTH...)
          int amount:增加/减少的值
              正数:增加
              负数:减少

     */
    private static void demo03() {
        //使用getInstance方法获取Calendar对象
        Calendar c  = Calendar.getInstance();

        //把年增加2年
        c.add(Calendar.YEAR,2);
        //把月减少3个月
        c.add(Calendar.MONTH,-3);
        int year = c.get(Calendar.YEAR);
        System.out.println(year); //2022

        int month = c.get(Calendar.MONTH);
        System.out.println(month);   // 2

        int date = c.get(Calendar.DAY_OF_MONTH);
        System.out.println(date);  //15     
    }

    /*
    -  public void set(int field,int value) :将给定的日历字段设置为的给定的值。
       参数:
          int field  传递指定的日历字段(YEAR,MONTH...)
          int value:传递的字段设置具体的值
     */
    private static void demo02() {
        //使用getInstance方法获取Calendar对象
        Calendar c  = Calendar.getInstance();

        //设置年为9999
        c.set(Calendar.YEAR,9999);
        //设置月为9
        c.set(Calendar.MONTH,9);
        //设置日为9
        c.set(Calendar.DATE,9);

        c.set(8888,8,8);
        int year = c.get(Calendar.YEAR);
        System.out.println(year); //9999   -8888

        int month = c.get(Calendar.MONTH);
        System.out.println(month);   //9   -8

        int date = c.get(Calendar.DAY_OF_MONTH);
        System.out.println(date);  //9     -8
    }


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

        int month = c.get(Calendar.MONTH);
        System.out.println(month);   //5   0-11 ---> 1-12

        int date = c.get(Calendar.DAY_OF_MONTH);
        System.out.println(date);  //15
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值