简述Calendar日历类
public abstract class Calendar implements Serializable, Cloneable, Comparable<Calendar>
该类被abstract修饰,不能被new的方式实例。Calendar提供了一个方法—getInstance,获得此类型的一个通用的对象,getInstance方法返回一个Calendar对象(该对象为Calendar子类对象)。
Calendar calendar = Calendar.getInstance();
为了更加便捷的对日期进行操作,Calendar类对YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段直接转换提供了一些方法,并为操作日历字段提供了一些方法。
测试:
@Test public void test(){ Calendar calendar =Calendar.getInstance(); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); System.out.print(sdf.format(calendar.getTime())); }
结果:2019-07-03 —— 当前日期
Calendar还提供了一些常用方法 Calendar calendar = null; @Before public void init(){ calendar =Calendar.getInstance();
} @Test public void test(){ calendar =Calendar.getInstance(); //实例一个日历 //获取当前的日期 int year = calendar.get(Calendar.YEAR); System.out.print(year+"年"); //获得当前年份 int monday = calendar.get(Calendar.MONDAY); System.out.print((monday+1)+"月"); //获得月份,减一,需要得到真正的月份需要+1 int week = calendar.get(Calendar.WEEK_OF_YEAR); System.out.print(week+"周"); //获得当前周 int day = calendar.get(Calendar.DAY_OF_MONTH); System.out.print(day+"日"); //获得当前天数 int hour = calendar.get(Calendar.HOUR); System.out.print(hour+"时"); //获得小时 int minute = calendar.get(Calendar.MINUTE); System.out.print(minute+"分"); //获得分钟 int second = calendar.get(Calendar.SECOND); System.out.print(second+"秒"); //获得秒钟 } @Test public void test2(){ //设置时间 //对指定的年份做处理 //calendar.add(Calendar.YEAR,-1); //指定一个月份 int currmonday = 10; System.out.println(Calendar.MONTH); System.out.println(Calendar.DAY_OF_MONTH); //固定一个时间点,我们找的是10月份的最后一天,但是MONTH的设置,月份会比我们设置的月份大一个月
calendar.set(calendar.get(Calendar.YEAR),currmonday,1); //使用add方法设置将刚才我们设置的天数1少一天 calendar.add(Calendar.DATE,-1); System.out.println(calendar.get(Calendar.MONTH)); System.out.println(calendar.get(Calendar.DATE)); }
Calendar类中还有许多方法如claer()、compareTo()、等
Calendar calendar = null;
@Before
public void init(){
calendar =Calendar.getInstance();
}
@Test
public void test(){
calendar =Calendar.getInstance(); //实例一个日历
//获取当前的日期
int year = calendar.get(Calendar.YEAR);
System.out.print(year+"年"); //获得当前年份
int monday = calendar.get(Calendar.MONDAY);
System.out.print((monday+1)+"月"); //获得月份,减一,需要得到真正的月份需要+1
int week = calendar.get(Calendar.WEEK_OF_YEAR);
System.out.print(week+"周"); //获得当前周
int day = calendar.get(Calendar.DAY_OF_MONTH);
System.out.print(day+"日"); //获得当前天数
int hour = calendar.get(Calendar.HOUR);
System.out.print(hour+"时"); //获得小时
int minute = calendar.get(Calendar.MINUTE);
System.out.print(minute+"分"); //获得分钟
int second = calendar.get(Calendar.SECOND);
System.out.print(second+"秒"); //获得秒钟
}
@Test
public void test2(){
//设置时间
//对指定的年份做处理
//calendar.add(Calendar.YEAR,-1);
//指定一个月份
int currmonday = 10;
System.out.println(Calendar.MONTH);
System.out.println(Calendar.DAY_OF_MONTH);
//固定一个时间点,我们找的是10月份的最后一天,但是MONTH的设置,月份会比我们设置的月份大一个月
calendar.set(calendar.get(Calendar.YEAR),currmonday,1);
//使用add方法查找到
calendar.add(Calendar.DATE,-1);
System.out.println(calendar.get(Calendar.MONTH));
System.out.println(calendar.get(Calendar.DATE));
//得到最大月份
System.out.println(calendar.getActualMaximum(currmonday)+1);
}