Calendar类

Calendar类

概念

  • java.util.Calendar 日历类,抽象类,在Date类后出现的,替换掉了很多Date类中的方法。该类将所有的可能用到的时间信息封装为静态成员变量,通过类名.静态成员变量获取时间字段值

常用的方法

  • public int get(int field) 获取给定的日历字段值
  • public void set(int field,int value) 将给定的字段设定为给定的值
  • public abstract void add(int field,int amount) 根据日历规则,将给定的日历字段添加或者减少指定的时间值
  • public Date getTime() 把日历对象转换成日期对象
  • public long getTimeInMillis() 获取日历对象对应的毫秒值

Calendar类中提供了很多个成员常量,代表给定的日历字段:

字段值含义
YEAR
MONTH
DATE月中的某一天(几号)
DAY_OF_DAY月中的第几天
HOUR时(12小时制)
HOUR_OF_HOUR时(24)
MINUTE
SECOND
DAY_OF_WEEK一周中的第几天(周日第一天)
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
/*
    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; 月中的第几天
                public static final int HOUR = 10;   时
                public static final int MINUTE = 12; 分
                public static final int SECOND = 13; 秒
  */
public class Demo01Calendar {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        demo04(calendar);
    }
    // 获取一个Calendar日历对象对应的Date日期对象
    // 获取一个Calendar日历对象对应的Date日期对象
    public static void demo04(Calendar calendar) {
        // public Date getTime()  把日历对象转换成日期对象
        Date date = calendar.getTime();
        System.out.println(date);// Mon Nov 30 15:14:37 CST 2020
        long time = date.getTime();
        System.out.println("date对象对应的毫秒值:" + time);
        TimeZone timeZone = calendar.getTimeZone();
        System.out.println(timeZone);

        long timeInMillis = calendar.getTimeInMillis();
        System.out.println("calendar日历对象对应的毫秒值:"+timeInMillis);

        long timeMillis = System.currentTimeMillis();
        System.out.println("System类获取的毫秒值:" + timeMillis);
    }

    // 根据日历的规则,为给定的日历字段添加或者减去指定的时间量
    public static void demo03(Calendar calendar) {
        // public abstract void add(int field,int amount) 把指定的字段增加或者是减少指定的值
        /*
            参数:
                int field:指定的日历字段(YEAR,MONTH,DATE,....)
                int amount: 增加或者减少指定的数量
                     正数:增加指定的数量
                     负数:减少指定的数量
         */
        // 把当前的年份增加2年
        calendar.add(Calendar.YEAR, 2);
        // 把当前的月份减少3个月
        calendar.add(Calendar.MONTH, -3);

        // 获取更改之后的年份和月份
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH)+1;
        int date = calendar.get(Calendar.DATE);
        System.out.println(year + "年" + month + "月" + date + "日");

    }

    // 将给定的日历字段设置为给定的值
    public static void demo02(Calendar calendar) {
        // public void set(int field,int value)
        /*
            1 3 5 7 8 10 12  31天
            4 6 9 11         30天
            2                29/28天
            int field:指定的日历字段(YEAR,MONTH,DATE....)
            int value:给指定的日历字段设置值
         */
        // 把当前的年份设置为2050年
        calendar.set(Calendar.YEAR, 2050);
        // 再次获取年份
        int year = calendar.get(Calendar.YEAR);
        System.out.println(year);
        // 把当前的月份设置为5月
        calendar.set(Calendar.MONTH, 4);// 0 -- 11
        //再次获取月份
        int month = calendar.get(Calendar.MONTH);
        System.out.println(month);
        // 设置日期为5日
        calendar.set(Calendar.DATE, 31);
        // 再次获取日期
        int date = calendar.get(Calendar.DATE);
        System.out.println(date);
    }

    // 获取给定的日历字段值
    public static void demo01(Calendar calendar) {
        // 使用public int get(int field) 获取给定的日历字段值
        // 获取年份
        int year = calendar.get(Calendar.YEAR);
        System.out.println(year);// 2020

        // 获取月份
        int month = calendar.get(Calendar.MONTH) + 1;
        System.out.println(month);// 10  西方的日历  月份:0--11  东方 1--12

        // 获取日期
        int date = calendar.get(Calendar.DATE);
        System.out.println(date);// 30
    }
}

备注:

  1. 在西方的星期,开始为周日,中国为周一
  2. 在Calendar类中,月份的表示是以0-11代表的是1-12月
  3. 日期是有大小关系,时间靠后,时间越大。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值