Calendar 类是一个抽象类,
它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法, 并为操作日历字段(例如获得下星期的日期)提供了一些方法。 并为操作日历字段(例如获得下星期的日期)提供了一些方法。
Date(int year, int month, int date) 已过时。 从 JDK 1.1 开始,由 Calendar.set(year + 1900, month, date) 或 GregorianCalendar(year + 1900, month, date) 取代 为替换Date类
java.lang.Object
——java.util.Calendar
直接已知子类: GregorianCalendar
与其他语言环境敏感类一样,Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象 Calendar rightNow = Calendar.getInstance(); public static Calendar getInstance() 使用默认时区和语言环境获得一个日历。返回的 Calendar 基于当前时间,使用了默认时区和默认语言环境。
public abstract void add(int field, int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量。 例如,要从当前日历时间减去 5 天,可以通过调用以下方法做到这一点: add(Calendar.DAY_OF_MONTH, -5)。 参数: field - 日历字段。 amount - 为字段添加的日期或时间量。
public void set(int field,int value) 将给定的日历字段设置为给定值。不管处于何种宽松性模式下,该值都不由此方法进行解释。
public final void set(int year,int month,int date) 设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。 保留其他日历字段以前的值。如果不需要这样做,则先调用 clear()。 参数: year - 用来设置 YEAR 日历字段的值。 month - 用来设置 MONTH 日历字段的值。Month 值是基于 0 的。例如,0 表示 January。 date - 用来设置 DAY_OF_MONTH 日历字段的值。
public class j {
/**
* @param args
*/
public static void main(String[] args) {
Calendar c = Calendar.getInstance(); //父类引用指向子类对象
System.out.println(c); //证明重写了toString方法打印了对象中所有的属性
System.out.println(c.get(Calendar.YEAR)); //通过字段获取对应的值
System.out.println(c.get(Calendar.MONTH));//月是从0开始编号的
System.out.println(c.get(Calendar.DAY_OF_MONTH));//月中的第几天
System.out.println(c.get(Calendar.DAY_OF_WEEK_IN_MONTH));//1,国际上,周日是第一天
System.out.println(c.get(Calendar.YEAR) + "年" +
(c.get(Calendar.MONTH)+1) + "月" +
c.get(Calendar.DAY_OF_MONTH) + "日" +
getWeek(c.get(Calendar.DAY_OF_WEEK)));
System.out.println(c.get(Calendar.YEAR) + "年" +
getNum((c.get(Calendar.MONTH)+1)) + "月" +
getNum(c.get(Calendar.DAY_OF_MONTH)) + "日" +
getWeek(c.get(Calendar.DAY_OF_WEEK)));
Calendar c1 = Calendar.getInstance();
System.out.println(c1.get(Calendar.YEAR) + "年" +
(c1.get(Calendar.MONTH)+1) + "月" +
c1.get(Calendar.DAY_OF_MONTH) + "日" +
getWeek(c1.get(Calendar.DAY_OF_WEEK)));
c1.add(Calendar.DAY_OF_MONTH, -5);
System.out.println(c1.get(Calendar.YEAR) + "年" +
(c1.get(Calendar.MONTH)+1) + "月" +
c1.get(Calendar.DAY_OF_MONTH) + "日" +
getWeek(c1.get(Calendar.DAY_OF_WEEK)));
Calendar c2 = Calendar.getInstance();
//c2.set(Calendar.YEAR, 2000);
c2.set(2000, 7, 8);//2000年8月8日星期二
System.out.println(c2.get(Calendar.YEAR) + "年" +
(c2.get(Calendar.MONTH)+1) + "月" +
c2.get(Calendar.DAY_OF_MONTH) + "日" +
getWeek(c2.get(Calendar.DAY_OF_WEEK)));
}
/*
* 将星期存储表中进行查表
* 1,返回值类型String
* 2,参数列表int week
*/
public static String getWeek(int week) {
String[] arr = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
return arr[week];
}
/*
* 如果是个数数字前面补0
* 1,返回值类型String类型
* 2,参数列表,int num
*/
public static String getNum(int num) {
/*if(num > 9) {
return "" + num;
}else {
return "0" + num;
}*/
return num > 9 ? "" + num : "0" + num;
}
}