getInstance()//使用默认时区和区域设置获取日历。
Calendar calendar = Calendar.getInstance();
获得实例默认是当前日期
System.out.println(calendar.get(0));//ear 代表时代
System.out.println(calendar.get(1));//year 年份
System.out.println(calendar.get(2));//month 月份是从0开始算的,真实的月份需要+1
System.out.println(calendar.get(3));//week of year 一年中第几个星期
System.out.println(calendar.get(4));//week of month 一个月中的第几个星期
System.out.println(calendar.get(5));//day of month 月中的第几天
System.out.println(calendar.get(6));//day of year 年中的第几天
System.out.println(calendar.get(7));//day of week 一周中第几天,从星期天开始算
System.out.println(calendar.get(8));//day of week in month
System.out.println(calendar.get(9));//am_pm 0代表hour是中午之前 1代表中午之后
System.out.println(calendar.get(10));//hour 十二小时制
System.out.println(calendar.get(11));//hour of day 二十四小时制
System.out.println(calendar.get(12));//minute 分
System.out.println(calendar.get(13));//second 秒
System.out.println(calendar.get(14));//millisecond 毫秒
System.out.println(calendar.get(15));//zone offset
System.out.println(calendar.get(16));//dst offset 夏令时偏移量
常量值如下:
System.out.println(Calendar.AM_PM);//0表示在中午12点之前,1表示中午12点之后(包括12点)
System.out.println(Calendar.ERA);//表示纪元,0表示BC(公元前),1表示AD(公元)
System.out.println(Calendar.YEAR);//表示年份
System.out.println(Calendar.MONTH);//表示月份,0表示1月,1表示2月,以此类推
System.out.println(Calendar.WEEK_OF_YEAR);//本年中第几个星期
System.out.println(Calendar.WEEK_OF_MONTH);//本月中第几个星期
System.out.println(Calendar.DAY_OF_MONTH);//一月中第几天
System.out.println(Calendar.DAY_OF_YEAR);//一年中第几天
System.out.println(Calendar.DAY_OF_WEEK);//一周中第几天,从周日开始,周日是1
System.out.println(Calendar.DAY_OF_WEEK_IN_MONTH);//当月中第几个星期
System.out.println(Calendar.HOUR);//小时,十二小时制
System.out.println(Calendar.HOUR_OF_DAY);//小时,二十四小时制
System.out.println(Calendar.MINUTE);//分钟
System.out.println(Calendar.SECOND);//秒
System.out.println(Calendar.MILLISECOND);//毫秒
System.out.println(Calendar.ZONE_OFFSET);//
System.out.println(Calendar.DST_OFFSET);//
System.out.println(Calendar.JANUARY);//一月
System.out.println(Calendar.FEBRUARY);//二月
System.out.println(Calendar.MARCH);//三月
System.out.println(Calendar.APRIL);//四月
System.out.println(Calendar.MAY);//五月
System.out.println(Calendar.JUNE);//六月
System.out.println(Calendar.JULY);//七月
System.out.println(Calendar.AUGUST);//八月
System.out.println(Calendar.SEPTEMBER);//九月
System.out.println(Calendar.OCTOBER);//十月
System.out.println(Calendar.NOVEMBER);//十一月
System.out.println(Calendar.DECEMBER);//十二月
System.out.println(Calendar.SUNDAY);//星期日
System.out.println(Calendar.MONDAY);//星期一
System.out.println(Calendar.TUESDAY);//星期二
System.out.println(Calendar.WEDNESDAY);//星期三
System.out.println(Calendar.THURSDAY);//星期四
System.out.println(Calendar.FRIDAY);//星期五
System.out.println(Calendar.SATURDAY);//星期六
add(int field, int amount) 根据日历的规则,将给定的日历字段添加或减去指定的时间量
System.out.println(calendar.getTime());
//Thu Nov 17 17:06:12 CST 2022
calendar.add(Calendar.DAY_OF_MONTH,-1);
System.out.println(calendar.getTime());
//Wed Nov 16 17:06:12 CST 2022
boolean after(Object when)
返回Calendar实例是否是另一个Calendar实例之后的时间,底层调用compareTo()
方法
Calendar newCalendar = Calendar.getInstance();
newCalendar.add(Calendar.HOUR_OF_DAY,-3);
System.out.println(calendar.after(newCalendar));
boolean before(Object when)
返回Calendar实例是否是另一个Calendar实例之前的时间
boolean equals(Object obj)
比较两者日期是否相等,传入的参数必须是Calendar实例
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
System.out.println(c1.getTime()+"\n"+c2.getTime());
System.out.println(c1.equals(c2));
//Thu Nov 17 21:59:45 CST 2022
//Thu Nov 17 21:59:45 CST 2022
//true
getTime()
返回一个 Date表示此Calendar的时间值
System.out.println(calendar.getTime());
//Wed Nov 16 17:06:12 CST 2022
setTime(Date date) //使用给定的 Date设置此日历的时间
void | set(int field, int value)将给定的日历字段设置为给定的值 |
---|---|
void | set(int year, int month, int date) 设置日历字段中的值 年、月、日 |
void | set(int year, int month, int date, int hourOfDay, int minute) 设置日历字段中的值 年、月、日、时、分 |
void | set(int year, int month, int date, int hourOfDay, int minute, int second) 设置字段中的值 年、月、日、时、分、秒 |
示例:
calendar.set(Calendar.HOUR_OF_DAY,23);
System.out.println(calendar.getTime());
//Thu Nov 17 23:37:30 CST 2022
calendar.set(2001,8,28);
System.out.println(calendar.getTime());
//Fri Sep 28 23:37:30 CST 2001
calendar.set(2008,10,13,11,59);
System.out.println(calendar.getTime());
//Thu Nov 13 11:59:30 CST 2008
calendar.set(2020,11,21,12,21,12);
System.out.println(calendar.getTime());
//Mon Dec 21 12:21:12 CST 2020
//int getActualMaximum(int field) 获取指定日历字段的最大值
System.out.println(calendar.getActualMaximum(Calendar.HOUR_OF_DAY));//获取一天中最后一小时
//0
System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_MONTH));//获取本月最后一天
//1
//int getActualMaximum(int field) 获取指定日历字段的最小值
System.out.println(calendar.getActualMinimum(Calendar.HOUR_OF_DAY));//获取一天中第一小时
//23
System.out.println(calendar.getActualMinimum(Calendar.DAY_OF_MONTH));//获取本月第一一天
//30
//Date对象转Calendar对象
Calendar cal = Calendar.getInstance();
Date date = new Date();
cal.setTime(date);
//Calendar对象转Date对象
Calendar cal = Calendar.getInstance();
Date date = cal.getTime();