概念
所述Calendar类是一个抽象类,可以为在某一特定时刻和一组之间的转换的方法calendar fields如YEAR , MONTH , DAY_OF_MONTH , HOUR ,等等,以及用于操纵该日历字段,如获取的日期下个星期。 瞬间可以用毫秒值表示,该值是1970年1月1日格林威治标准时间1970年1月1日00:00:00,000(格里高利,即公历)的Epoch的偏移量。
创建方法
注意:Calendar在Java中定义为抽象类
//抽象的类,不能直接创建
public abstract class Calendar implements Serializable, Cloneable, Comparable<Calendar>
正确创建方法:
Calendar c1 = Calendar.getInstance();
Calendar获取年月日(get)
Calendar c1 = Calendar.getInstance();
int year = c1.get(Calendar.YEAR);
//0表示1月,1表示2月...(0-11)
int month = c1.get(Calendar.MONTH);
//这个月的第几天
int day1 = c1.get(Calendar.DAY_OF_MONTH);
//今年的第几天
int day2 = c1.get(Calendar.DAY_OF_YEAR);
//本周的第几天,周日开始->周六结束
int day3 = c1.get(Calendar.DAY_OF_WEEK);
System.out.println(year + "年" + month+"月");
System.out.println("本月的第"+day1+"天");
System.out.println("今年的第"+day2+"天");
System.out.println("本周的第"+day3+"天");
结果:
Calendar设置年月日(set)
Calendar c1 = Calendar.getInstance();
//设置为2023年
c1.set(Calendar.YEAR,2023);
int year = c1.get(Calendar.YEAR);
//设置为12月
c1.set(Calendar.MONTH,11);
//0表示1月,1表示2月...(0-11)
int month = c1.get(Calendar.MONTH);
System.out.println(year + "年" + (month+1) + "月");
结果:
日期加减(add)
Calendar c1 = Calendar.getInstance();
//年加1
c1.add(Calendar.YEAR,1);
int year = c1.get(Calendar.YEAR);
//月加1
c1.add(Calendar.MONTH,1);
//0表示1月,1表示2月...(0-11)
int month = c1.get(Calendar.MONTH);
System.out.println(year + "年" + (month+1) + "月");
结果:
将Calendar转为Data(getTime)
Calendar c1 = Calendar.getInstance();
Date date = c1.getTime();
当前最大(getActualMaximum)
Calendar c1 = Calendar.getInstance();
System.out.println(c1.getActualMaximum(Calendar.DAY_OF_MONTH));
作用:获得某月有多少天,某年有多少天等等
结果: