Calendar类是一个抽象类,不可以被实例化
一、如何获取Calendar类的实例:
方式一:调用 Calendar 类的静态方法 getInstance()
具体示例:Calendar calendar=Calendar.getInstance();
方式二:声明父类new子类:GregorianCalendar是Calendar类的子类
Calendar calender=new GregorianCalendar();
二、常用方法
以上两种方式得到的时间是当前系统时间,包括了上十种信息,想要得到具体的时间用以下方法:
1.get方法
get(Calendar.YEAR) | 获取当前年份,不是距离1900多少年 |
get(Calendar.MONTH) | 获取当前月份(月份起始值从0开始,最大为11) |
get(Calendar.DATE) | 获取当前的日(年月日中的日) |
get(Calendar.DAY_OF_WEEK) | 获取当前日是一周中的第几天(从0开始算) |
get(Calendar.DAY_OF_MONTH) | 获取当前日是当前月中的第几天 |
get(Calendar.DAY_OF_YEAR) | 获取当前日是当前年中的第几天 |
get(Calendar.WEEK_OF_YEAR) | 获取当前周是一年中的第几周 |
get(Calendar.WEEK_OF_MONTH) | 获取当前周是当前月中的第几周 |
get(Calendar.HOUR) | 获取当前的小时(12小时制的) |
get(Calendar.MINUTE) | 获取当前的分钟 |
get(Calendar.SECOND) | 获取当前的秒 |
getActualMaximum(Calendar.DATE) | 获取当前月份的最大天数 |
getActualMinimum(Calendar.DATE) | 获取当前月份的最小天数 |
get(Calendar.HOUR_OF_DAY) | 获取当前时间是一天中的第几个小时 |
2.set方法
Calendar calendar = Calendar.getInstance();
cal.set(2024, 0, 11, 17, 44, 51);//年月日时分秒(月份0代表1月)
cal.set(Calendar.YEAR, 2024);//年
cal.set(Calendar.MONTH, 0);//月(月份0代表1月)
cal.set(Calendar.DATE, 11);//日
cal.set(Calendar.HOUR_OF_DAY, 17);//时
cal.set(Calendar.MINUTE, 44);//分
cal.set(Calendar.SECOND, 51);//秒
3.add方法:
Calendar calendar=Calendar.getInstance();
calendar.add(Calendar.YEAR, 1);//年
calendar.add(Calendar.MONTH, 1);//月
calendar.add(Calendar.DATE, 1);//日
calendar.add(Calendar.HOUR_OF_DAY, -1);//时(负数得到的是24加上这个负数)
calendar.add(Calendar.MINUTE, 1);//分
calendar.add(Calendar.SECOND, 1);//秒
calendar.add(Calendar.DATE, 7);//周