1. 获取Calendar实例
Calendar cal = Calendar.getInstance();
当我们通过 Calendar.getInstance() 获取日历时,默认的是返回的一个GregorianCalendar对象
2.set()
//设置日期为“2013-09-01”
cal.set(2013,8,1);
cal.set(Calendar.YEAR, 2013); //设置年
cal.set(Calendar.MONTH, 8); //设置月
cal.set(Calendar.DATE, 1); //设置日
cal.setTimeZone(TimeZone zone) //设置时区
//设置为周五
cal.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
3.get()
cal.get(Calendar.DATE); //获取“日”
cal.get(Calendar.MONTH); //获取“月”
cal.get(Calendar.YEAR); //获取“年”
cal.getTimeZone() //获取“时区”
4.add()
cal.add(Calendar.DATE,-7); //上周
cal.add(Calendar.MONTH, -10); //10个月前
假设:现在cal的值是“2013-09-01”,现在我们将MONTH字段值增加-10。得到的结果是:“2012-10-01”。
5.roll()
cal.roll(Calendar.MONTH, -10); //回滚Calendar中某一字段时,不更改更大的字段!
假设:现在cal的值是“2013-09-01”,现在我们将MONTH字段值增加-10。得到的结果是:“2013-10-01”。
6.clone()
Calendar tmpCal = (Calendar)cal.clone(); // 克隆cal。后面对tmpCal操作,就不会改变cal
tmpCal.set(Calendar.DATE, 1); // 把日期设置为当月第一天
tmpCal.roll(Calendar.DATE, -1); // 把日期设置为当月最后一天
tmpCal.get(Calendar.DAY_OF_WEEK); //获取当天是星期几 ,SUNDAY为1,MONDAY为2,依次类推。
tmpCal.add(Calendar.MONTH, 1); // 设为“下一个月”
tmpCal.getActualMaximum(Calendar.DATE); //获取“下一个月的天数”
7.getMaximum()和getActualMaximum() getMinimum()和getActualMinimum()
getMaximum() 获取的“字段最大值”,是指在综合所有的日期,在所有这些日期中得出的“字段最大值”。
getActualMaximum() 获取的“当前日期时,该字段的最大值”
getMaximum(Calendar.DATE)的目的是“获取‘日的最大值'”。综合所有的日期,得出一个月最多有31天。因此,getMaximum(Calendar.DATE)的返回值是“31”当日期为2013-09-01时,getActualMaximum(Calendar.DATE)是获取“日的最大值”是“30”
8.比较
boolean equals(Object object) // 当前Calendar对象 是否 早于calendar
boolean before(Object calendar) // 当前Calendar对象 是否 晚于calendar
boolean after(Object calendar) // 比较“当前Calendar对象”和“calendar”。
// 若 早于 “calendar” 则,返回-1
// 若 相等, 则,返回0
// 若 晚于 “calendar” 则,返回1
int compareTo(Calendar anotherCalendar)
Calendar cal = Calendar.getInstance();
当我们通过 Calendar.getInstance() 获取日历时,默认的是返回的一个GregorianCalendar对象
2.set()
//设置日期为“2013-09-01”
cal.set(2013,8,1);
cal.set(Calendar.YEAR, 2013); //设置年
cal.set(Calendar.MONTH, 8); //设置月
cal.set(Calendar.DATE, 1); //设置日
cal.setTimeZone(TimeZone zone) //设置时区
//设置为周五
cal.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
3.get()
cal.get(Calendar.DATE); //获取“日”
cal.get(Calendar.MONTH); //获取“月”
cal.get(Calendar.YEAR); //获取“年”
cal.getTimeZone() //获取“时区”
4.add()
cal.add(Calendar.DATE,-7); //上周
cal.add(Calendar.MONTH, -10); //10个月前
假设:现在cal的值是“2013-09-01”,现在我们将MONTH字段值增加-10。得到的结果是:“2012-10-01”。
5.roll()
cal.roll(Calendar.MONTH, -10); //回滚Calendar中某一字段时,不更改更大的字段!
假设:现在cal的值是“2013-09-01”,现在我们将MONTH字段值增加-10。得到的结果是:“2013-10-01”。
6.clone()
Calendar tmpCal = (Calendar)cal.clone(); // 克隆cal。后面对tmpCal操作,就不会改变cal
tmpCal.set(Calendar.DATE, 1); // 把日期设置为当月第一天
tmpCal.roll(Calendar.DATE, -1); // 把日期设置为当月最后一天
tmpCal.get(Calendar.DAY_OF_WEEK); //获取当天是星期几 ,SUNDAY为1,MONDAY为2,依次类推。
tmpCal.add(Calendar.MONTH, 1); // 设为“下一个月”
tmpCal.getActualMaximum(Calendar.DATE); //获取“下一个月的天数”
7.getMaximum()和getActualMaximum() getMinimum()和getActualMinimum()
getMaximum() 获取的“字段最大值”,是指在综合所有的日期,在所有这些日期中得出的“字段最大值”。
getActualMaximum() 获取的“当前日期时,该字段的最大值”
getMaximum(Calendar.DATE)的目的是“获取‘日的最大值'”。综合所有的日期,得出一个月最多有31天。因此,getMaximum(Calendar.DATE)的返回值是“31”当日期为2013-09-01时,getActualMaximum(Calendar.DATE)是获取“日的最大值”是“30”
8.比较
boolean equals(Object object) // 当前Calendar对象 是否 早于calendar
boolean before(Object calendar) // 当前Calendar对象 是否 晚于calendar
boolean after(Object calendar) // 比较“当前Calendar对象”和“calendar”。
// 若 早于 “calendar” 则,返回-1
// 若 相等, 则,返回0
// 若 晚于 “calendar” 则,返回1
int compareTo(Calendar anotherCalendar)