一、Calendar类 简介
java.util.Calendar意为日历,跟Date类有很多类似的地方,但是也有区别的,Date类主要用于时间的表示,而Calendar侧重于时间的计算。Calendar类是一个抽象基类,需要通过工厂方法去取得当前系统日历:
Calendar calendar=Calendar.getInstance();
Calendar与Date的转换非常简单,如下 :
Calendar calendar=Calendar.getInstance();
//从一个Calendar对象中获取 Date对象
Date date=calendar.getTime();
//将Date对象 反应到 Calnedar对象中
// Calendar/GregorianCalendar 没有构造函数可以接受 Date 对象
// 所以我们必需先获得一个实例,然后设置 Date 对象
calendar.setTime(date);
二、示例输出
public class CalStu {
public static void main(String[] args) {
// 获得实例对象使用 getInstance
Calendar cal = Calendar.getInstance();
//设置值
//cal.set(Calendar.YEAR, 1997);
//cal.set(Calendar.MINUTE, 3);
//可以使用add计算
cal.add(Calendar.YEAR, -30);//
//获得年月日,时分秒,日期等
System.out.println("年:" + cal.get(Calendar.YEAR) + ",月:"
+ (cal.get(Calendar.MONTH)+1) + ",日:" + cal.get(Calendar.DATE)
+ ",时:" + cal.get(Calendar.HOUR_OF_DAY) + ":分:"
+ cal.get(Calendar.MINUTE) + ",秒:" + cal.get(Calendar.SECOND)
+ ",星期:" + cal.get(Calendar.DAY_OF_WEEK));
System.out.println(cal.get(Calendar.DAY_OF_YEAR));
System.out.println(cal.get(Calendar.WEEK_OF_YEAR));
System.out.println(cal.getTime());//把calendar转换为date对象
System.out.println(cal.getTimeInMillis());
//实例
//计算每个月的天数
//9 月份的天数
for(int i=0;i<12;i++){
cal.set(Calendar.MONTH, i+1);
cal.set(Calendar.DATE, 1);
cal.add(Calendar.DATE, -1);
System.out.println("第"+(i+1)+"月的天数:"+cal.get(Calendar.DATE));
}
}
}