学习笔记,仅供参考
Calendar类
Calendar类是java.util包下的一个类,使用该类时需要导包。
Calendar
类是一个抽象类,它为特定瞬间与一组诸如 YEAR
、MONTH
、DAY_OF_MONTH
、HOUR
等 日历字段
之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
字段
字段 | 定义 | 详情 |
---|---|---|
YEAR | public static final int YEAR |
这是一个特定于日历的值 |
MONTH | public static final int MONTH |
在格里高利历和罗马儒略历中一年中的第一个月是 JANUARY,它为 0; |
WEEK_OF_YEAR | public static final int WEEK_OF_YEAR |
当前年中的星期数,一年中第一个星期的值为 1 |
WEEK_OF_MONTH | public static final int WEEK_OF_MONTH |
当前月中的星期数,一个月中第一个星期的值为 1 |
DATE | public static final int DATE |
一个月中的某天,一个月中第一天的值为 1,它与 DAY_OF_MONTH 是同义词 |
DAY_OF_MONTH | public static final int DAY_OF_MONTH |
一个月中的某天,它与 DATE 是同义词,一个月中第一天的值为 1。 |
DAY_OF_YEAR | public static final int DAY_OF_YEAR |
当前年中的天数,一年中第一天的值为 1。 |
DAY_OF_WEEK | public static final int DAY_OF_WEEK |
一个星期中的某天。该字段可取的值为 SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY 和 SATURDAY。 |
DAY_OF_WEEK_IN_MONTH | public static final int DAY_OF_WEEK_IN_MONTH |
当前月中的第几个星期。与 DAY_OF_WEEK 字段一起使用时,就可以唯一地指定某月中的某一天。 |
AM_PM | public static final int AM_PM |
指示 HOUR 是在中午之前还是在中午之后。 例如,在 10:04:15.250 PM 这一时刻,AM_PM 为 PM。 |
HOUR | public static final int HOUR |
HOUR 用于 12 小时制时钟 (0 - 11)。中午和午夜用 0 表示,不用 12 表示 |
HOUR_OF_DAY | public static final int HOUR_OF_DAY |
一天中的小时。HOUR_OF_DAY 用于 24 小时制时钟。 |
MINUTE | public static final int MINUTE |
一小时中的分钟。 |
SECOND | public static final int SECOND |
一分钟中的秒 |
成员方法
public static Calendar getInstance()
//使用默认时区和语言环境获得一个日历。
//返回的Calendar基于当前时间,使用了默认时区和默认语言环境。
public int get(int field)
public void add(int field,int amount)
//为给定的日历字段添加或减去指定的时间量。例如,要从当前日历时间减去5天
public final void set(int year,int month,int date)
//设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。保留其他日历字段以前的值。如果不需要这样做,则先调用 clear()。
- 举个例子1
package com.guiyang.restudy3;
import java.util.Calendar;
public class D8Calendar {
public static void main(String[] args) {
Calendar c = Calendar.getInstance(); //父类引用指向子类对象
System.out.println(c); //重写了toString方法打印了对象中所有的属性
System.out.println(c.get(Calendar.YEAR)); //通过字段获取对应的值
System.out.println(c.get(Calendar.MONTH));
System.out.println(c.get(Calendar.DAY_OF_YEAR));
System.out.println(c.get(Calendar.DAY_OF_WEEK)); //周六为最后一天,周日为第1天
}
}
输出:
java.util.GregorianCalendar[time=1593223090351,areFieldsSet=true,
areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",
offset=28800000,dstSavings=0,useDaylight=false,transitions=19,
lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,
YEAR=2020,MONTH=5,WEEK_OF_YEAR=26,WEEK_OF_MONTH=4,DAY_OF_MONTH=27,
DAY_OF_YEAR=179,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=4,AM_PM=0,HOUR=9,
HOUR_OF_DAY=9,MINUTE=58,SECOND=10,MILLISECOND=351,ZONE_OFFSET=28800000,DST_OFFSET=0]
2020
5
179
7
- 举个例子2
package com.guiyang.restudy3;
import java.util.Calendar;
public class D9Calender {
public static void main(String[] args) {
Calendar c = Calendar.getInstance(); //父类引用指向子类对象
c.set(1997, 8, 28);
System.out.println(c.get(Calendar.YEAR) + "年" + getNum((c.get(Calendar.MONTH)+1))
+ "月" + getNum(c.get(Calendar.DAY_OF_MONTH))
+ "日" + getWeek(c.get(Calendar.DAY_OF_WEEK)));
c.add(Calendar.MONTH, -2);
System.out.println(c.get(Calendar.YEAR) + "年" + getNum((c.get(Calendar.MONTH)+1))
+ "月" + getNum(c.get(Calendar.DAY_OF_MONTH))
+ "日" + getWeek(c.get(Calendar.DAY_OF_WEEK)));
}
public static String getWeek(int week) {
String[] arr = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
return arr[week];
}
public static String getNum(int num) {
return num > 9 ? "" + num : "0" + num;
}
}
输出:
1997年09月28日星期日
1997年07月28日星期一