Calendar类,封装了所有的日历字段值,通过统一的方法根据传入不同的日历字段可以获取值
1.获取Calendar实例对象getInstance()
(其实质是返回一个GregorianCalendar子类对象,是java中多态特性的典型应用)
Calendar cal= Calendar.getInstance();
2.获取方法:get()
int java.util.Calendar.get(int field)—根据传入的字段返回对应的整数值
如:cal.get(Calendar.YEAR); — 返回年对应的整数值
其中传入的参数 field 是Calendar类中定义的常数字段,常用字段有:
年 Calendar. YEAR
月 Calendar. MONTH (注意:月是从0开始数的,0-11表示一年中的1-12月)
日 Calendar. DAY_OF_MONTH
时 Calendar. HOUR_OF_DAY
分 Calendar. MINUTE
秒 Calendar.SECOND
其余字段还有:
表示月份的:JANUARY -DECEMBER
表示星期的字段:MONDAY -SUNDAY
3.时间调整函数add()
根据给定的日历字段和对应的时间来对当前日历进行操作
//5年后的10天前
c.add(Calendar.YEAR, 5);
c.add(Calendar.DAY_OF_MONTH, -10);
DAY_OF_MONTH和DATA表示的是一个意思
案例:获取任意一年的2月有多少天
思路:
1.先设定给定年的月份为3月
2.调用add(Calendar.DATE,-1),将日期向前推一天
3.输出即可
4.时间设定函数set()
//设置时间为2016年10月23日(注意月的表示方法)
c.set(2016, 9, 23);
//设定时、分、秒
c.set(Calendar.HOUR_OF_DAY, 21);
c.set(Calendar.MINUTE, 21);
c.set(Calendar.SECOND, 19);
System.out.println(c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DAY_OF_MONTH)+"日");
System.out.println(c.get(Calendar.HOUR_OF_DAY)+"时"+(c.get(Calendar.MINUTE)+1)+"分"+c.get(Calendar.SECOND)+"秒");
运行结果:
2016年10月23日
21时22分19秒