Calendar 日历类
1 Calendar类概念
Calendar是日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。
Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,将语言敏感内容处理好,再返回子类对象,如下:
Calendar类静态方法
Calendar c = Calendar.getInstance(); //返回当前时间
或者Calendar c = new GregorianCalendar();
2 Calendar类常用方法
public static Calendar getInstance() //获取日期对象
public int get(int field) //获取时间字段值,字段参见帮助文档
YEAR 年
MONTH 月,从0开始算起,最大11;0代表1月,11代表12月。
DATE 天
HOUR 时
MINUTE分
SECOND秒
3 注意事项
西方星期的开始为周日,中国为周一。
在Calendar类中,月份的表示是以0-11代表1-12月。
日期是有大小关系的,时间靠后,时间越大。
public class Demo01 {
@Test
public void test() {
// 获取适合当前时区和语言环境的日历类
Calendar c = Calendar.getInstance();
// 获取Date
Date now = c.getTime();
System.out.println(now);
// 查询
int i = c.get(Calendar.YEAR);
System.out.println(i);
// 0-11代表1-12月份
int month = c.get(Calendar.MONTH);
System.out.println(month + 1 + "月");
// 一月中的第几天,第一天就是1
int date = c.get(Calendar.DATE);
System.out.println(date);
// 一年中的第几天
int dayOfYear = c.get(Calendar.DAY_OF_YEAR);
System.out.println(dayOfYear);
// 今天是这个月的第几周里面
c.set(Calendar.DATE, 24);
int dayOfWeekInMonth = c.get(Calendar.DAY_OF_WEEK_IN_MONTH);
System.out.println(c.getTime().toLocaleString());
System.out.println(dayOfWeekInMonth);// 8月9日返回2
// 周日,就是1
System.out.println(Calendar.SUNDAY);
// 一月份,就是0
System.out.println(Calendar.JANUARY);
c.set(Calendar.YEAR, 2019);
c.set(Calendar.MONTH, Calendar.OCTOBER);
System.out.println(c.getTime().toLocaleString());
}
}
public class Demo02 {
@Test
public void test() {
Calendar c=Calendar.getInstance();
Date now=c.getTime();
System.out.println(now);
System.out.println(c.get(Calendar.YEAR)+"年");
System.out.println(c.get(Calendar.MONTH)+1+"月");
System.out.println(c.get(Calendar.DATE)+"日");
System.out.println("一年中第"+c.get(Calendar.DAY_OF_YEAR)+"天");
//c.set(Calendar.DATE, 24);
System.out.println("这个月第"+c.get(Calendar.DAY_OF_WEEK_IN_MONTH)+"周");
System.out.println(c.getTime().toLocaleString());
System.out.println("周日:"+Calendar.SUNDAY);
System.out.println("一月:"+Calendar.JANUARY);
c.set(Calendar.YEAR, 2018);
c.set(Calendar.MONTH, 9);
System.out.println(c.getTime().toLocaleString());
}
}