序言
在学习使用Calendar时发现对它的使用很困难,一点都不丝滑,查看API文档其中的内容很多讲述的也十分的笼统,其中一些专业说法也很难理解,为此我结合API文档与网上的一些资料,对Calendar的使用做了一些总结。
关于Calendar
- Calendar是java.util的工具类
- Calendar是一个抽象类,所以不能直接new,需要使用它的getInstance()
方法获取它的实现类对象。 - 通过操作日历字段可完成一些对时间日期有关的操作
Calendar的使用
一、获取Calendar的实现类对象
Calendar是一个抽象类,本身并不能被实例化,但是它有一个名为getInstance()的静态方法,能获取它的实现类对象。具体语法如下
Calendar calendar = Calendar.getInstance();
二、关于Calendar中的字段
首先什么是字段?
根据我查看API文档,得出的理解是,字段是Calendar中定义的一些常量,我们可以利用字段完成我们想要的操作。
关于部分字段的定义如下:
三、获取当前日历类指定时间的相关数据
可以通过calendar的实现类对象调用get()方法来获取对应数据
具体格式如下:
Calendar calendar = Calendar.getInstance();
calendar.get(Canlendar.字段);
如下我总结了一些常用的数据获取操作
//获取对应日期的年份
int year = calendar.get(Calendar.YEAR);
//获取对应日期的月份
//月份从0开始
int month = calendar.get(Calendar.MONTH)+1;
//获取对应日期
int day = calendar.get(Calendar.DATE);
//判断当前时间是上午还是下午
//0为上午,1为下午
int am_pm = calendar.get(Calendar.AM_PM);
//获取对应日期的时间 (小时)
//12小时制,即下午1点显示为1而不是13
int hours = calendar.get(Calendar.HOUR);
//获取对应日期的时间 (分钟)
int minute = calendar.get(Calendar.MINUTE);
//获取对应日期是该周的第几天
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
//获取对应日期是该月的第几天
int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
//获取对应日期是该年的第几天
int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
//获取对应日期是该月的第几周
int weekOfMonth = calendar.get(Calendar.WEEK_OF_MONTH);
//获取对应日期是该年的第几周
int weekOfYear = calendar.get(Calendar.WEEK_OF_YEAR);
//获取当前月份的最大天数
calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
四、关于Calendar中的常用方法
1)set()
set方法有许多的重载方法,这里不细讲,主要是讲解它的作用。
首先日历一定会有一个当前时间,获取Calendar实现类对象的时间默认是当前的系统时间。
如果我们要获取其它时间的数据的话,就可以通过set方法更改当前日历的指定时间,获取对应数据,即相当于翻看日历。
2)CompareTo(Calendar otherCalendar)
可通过该方法比较两个Calendar类实现类对象当前指定时间的先后
具体使用如下:
calendar时间先于calendar1则返回-1
相等则返回0
后于则返回1
3)getTime()
返回一个Date对象,用于输出时间