提示:以下是本篇文章正文内容,下面案例可供参考
一、Calendar实例
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
二、Calendar常量
常量 | 说明 |
---|
Calendar.ERA | 纪元(0=公元前,1=公元) |
Calendar.YEAR | 年 |
Calendar.MONTH | 月(0=1月,1=2月,2=3月) |
Calendar.DATE | 日 |
Calendar.HOUR | 时,今天几点了(12小时制) |
Calendar.HOUR_OF_DAY | 时,今天几点了(24小时制) |
Calendar.MINUTE | 分钟 |
Calendar.SECOND | 秒 |
Calendar.MILLISECOND | 毫秒 |
Calendar.DAY_OF_YEAR | 今天是一年中的第几天 |
Calendar.WEEK_OF_YEAR | 现在是一年中的第几个星期 |
Calendar.DAY_OF_MONTH | 今天是一个月中的第几天 |
Calendar.DAY_OF_WEEK_IN_MONTH | 现在是一个月中的第几个星期 |
Calendar.WEEK_OF_MONTH | 现在是一个月中的第几个星期(同上) |
Calendar.DAY_OF_WEEK | 今天是周几(1=周日,2=周一,3=周二) |
Calendar.AM_PM | 现在是中午之前还是中午之后(0=中午12点之前,1=中午12点(包括12点)之后) |
Calendar.JANUARY | 1月 |
Calendar.FEBRUARY | 2月 |
Calendar.MARCH | 3月 |
Calendar.APRIL | 4月 |
Calendar.MAY | 5月 |
Calendar.JUNE | 6月 |
Calendar.JULY | 7月 |
Calendar.AUGUST | 8月 |
Calendar.SEPTEMBER | 9月 |
Calendar.OCTOBER | 10月 |
Calendar.NOVEMBER | 11月 |
Calendar.DECEMBER | 12月 |
三、Calendar方法
方法 | 说明 |
---|
int get(int field) | 获取日历字段的值,field参数可以是Calendar常量 |
void set(int field, int value) | 给指定日历字段设置值 |
void set(int year, int month, int date) | 设置Calendar中的年、月、日 |
void set(int year, int month, int date, int hourOfDay, int minute) | 设置Calendar中的年、月、日、时、分 |
void set(int year, int month, int date, int hourOfDay, int minute, int second) | 设置Calendar中的年、月、日、时、分、秒 |
void add(int field, int amount) | 给指定的一个日历字段进行整数的偏移(加/减日期) |
boolean after(Object when) | 判断d2的日期是否在d1的日期之后。入参必须是Calendar对象。例如:d2.after(d1) |
boolean before(Object when) | 判断d1的日期是否在d2的日期之前。入参必须是Calendar对象。例如:d1.before(d2) |
boolean equals(Object obj) | 判断d1的日期是否等于d2所表示的日期。入参必须是Calendar对象。例如:d1.equals(d2) |
int compareTo(Calendar anotherCalendar) | 比较2个日期。如果d1<d2则返回-1,如果d1==d2则返回0,d1>d2则返回1。例如:d1.compareTo(d2), |
int getActualMaximum(int field) | 获取指定日历字段最大值,例如:d1.getActualMaximum(Calendar.DAY_OF_MONTH),获取本月最后一天的号数 |
int getActualMinimum(int field) | 获取指定日历字段最小值,例如:d1.getActualMinimum(Calendar.DAY_OF_MONTH),获取本月第一天的号数 |
long getTimeInMillis() | 获取日历对象的毫秒值 |
int getFirstDayOfWeek() | 获取一周的第一天是什么 |
TimeZone getTimeZone() | 获取时区 |
四、Calendar日期操作
@Test
public void testCalendar(){
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.get(Calendar.ERA);
calendar.get(Calendar.YEAR);
calendar.get(Calendar.MONTH);
calendar.get(Calendar.DATE);
calendar.get(Calendar.HOUR);
calendar.get(Calendar.HOUR_OF_DAY);
calendar.get(Calendar.MINUTE);
calendar.get(Calendar.SECOND);
calendar.get(Calendar.MILLISECOND);
calendar.get(Calendar.DAY_OF_YEAR);
calendar.get(Calendar.WEEK_OF_YEAR);
calendar.get(Calendar.DAY_OF_MONTH);
calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH);
calendar.get(Calendar.WEEK_OF_MONTH);
calendar.get(Calendar.DAY_OF_WEEK);
calendar.get(Calendar.AM_PM);
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);
calendar.set(2023, Calendar.OCTOBER, 28);
calendar.set(2023, Calendar.OCTOBER, 28, 10, 1);
calendar.set(2023, Calendar.OCTOBER, 28, 10, 1, 30);
calendar.set(Calendar.YEAR, 2023);
calendar.set(Calendar.MONTH, 10);
calendar.set(Calendar.DATE, 28);
calendar.set(Calendar.HOUR_OF_DAY, 10);
calendar.set(Calendar.MINUTE, 6);
calendar.set(Calendar.SECOND, 30);
calendar.set(Calendar.MILLISECOND, 235);
calendar.add(Calendar.YEAR, 2);
calendar.add(Calendar.YEAR, -1);
calendar.add(Calendar.MONTH, 1);
calendar.add(Calendar.MONTH, -1);
calendar.add(Calendar.DATE, 2);
calendar.add(Calendar.DATE, -1);
calendar.add(Calendar.HOUR_OF_DAY, 1);
calendar.add(Calendar.HOUR_OF_DAY, -1);
calendar.add(Calendar.MINUTE, 30);
calendar.add(Calendar.MINUTE, -30);
calendar.add(Calendar.SECOND, 30);
calendar.add(Calendar.SECOND, -30);
calendar.add(Calendar.DATE, 7);
calendar.add(Calendar.DATE, -7);
calendar.add(Calendar.MILLISECOND, 1000);
calendar.add(Calendar.MILLISECOND, -1000);
System.out.println(sdf.format(calendar.getTime()));
}