1.Calendar类是一个抽象类,里面提供了很多操作日历的方法。

2.Calendar类无法直接创建对象使用,需要利用里面的一个静态方法 getInstance(),该方法返回一个Calendar对象(子类对象)


返回类型 方法描述
创建  
static Calendar getInstance()

使用默认时区和区域设置获取日历。
static Calendar getInstance(Locale aLocale)

使用默认时区和指定的区域设置获取日历。
static Calendar getInstance(TimeZone zone)

使用指定的时区和默认语言环境获取日历。
static Calendar getInstance(TimeZone zone, Locale aLocale)

获取具有指定时区和区域设置的日历。
Object clone()

创建并返回此对象的副本。
计算  
abstract void add(int field, int amount)

根据日历的规则,将指定的时间量添加或减去给定的日历字段。
abstract void roll(int field, boolean up)

在给定时间字段上添加或减少单个时间单位,而不改变较大的字段。
void roll(int field, int amount)

将指定(签名)金额添加到指定的日历字段,而不更改较大的字段。
设置  
void set(int field, int value)

将给定的日历字段设置为给定的值。
void set(int year, int month, int date)

设置日历字段中的值 YEAR , MONTH和 DAY_OF_MONTH 。
void set(int year, int month, int date, int hourOfDay, int minute)

设置日历字段中的值 YEAR , MONTH , DAY_OF_MONTH , HOUR_OF_DAY和 MINUTE 。
void set(int year, int month, int date, int hourOfDay, int minute, int second)

设置字段中的值 YEAR , MONTH , DAY_OF_MONTH , HOUR_OF_DAY , MINUTE和 SECOND 。
void setFirstDayOfWeek(int value)

设置一周的第一天是什么? 例如, SUNDAY在美国, MONDAY在法国。
boolean isLenient()

告诉日期/时间的解释是否宽松。
void setLenient(boolean lenient)

指定日期/时间解释是否宽松。
void setMinimalDaysInFirstWeek(int value)

设定一年中第一个星期所需的最短时间是多少? 例如,如果第一周被定义为包含一年中第一个月的第一天的第一周,请调用此值为1的方法。
void setTime(Date date)

使用给定的 Date设置此日历的时间。
void setTimeInMillis(long millis)

从给定的长值设置此日历的当前时间。
void setTimeZone(TimeZone value)

以给定的时区值设置时区。
void clear(int field)

设置给定日历字段值和时间值(毫秒Epoch如此) Calendar不确定。
void setWeekDate(int weekYear, int weekOfYear, int dayOfWeek)

设置这个 Calendar的日期与给定的日期说明符 - 周年,年周和星期几。
比较  
int compareTo(Calendar anotherCalendar)

比较时间值(从毫秒偏移量Epoch由两个表示) Calendar对象。
转换  
protected abstract void computeFields()

当前毫秒时间值转换为 time的日历字段值 fields[] 。
protected abstract void computeTime()

fields[]中的当前日历字段值 转换为毫秒时间值 time 。
Instant toInstant()

将此对象转换为Instant。
返回  
boolean after(Object when)

返回 Calendar是否 Calendar指定时间之后的时间 Object 。
boolean before(Object when)

返回此 Calendar是否 Calendar指定的时间之前指定的时间 Object 。
int get(int field)

返回给定日历字段的值。
int getActualMaximum(int field)

给定此 Calendar的时间值,返回指定日历字段可能具有的 Calendar 。
int getActualMinimum(int field)

给定此 Calendar的时间值,返回指定的日历字段可以具有的 Calendar 。
static Set<String> getAvailableCalendarTypes()

返回一个不可 Set的 Calendar ,其中包含运行时环境中 Set支持的所有日历类型。
static Locale[] getAvailableLocales()

返回一个所有区域设置的数组,该类的 getInstance方法可以返回本地化实例。
String getCalendarType()

返回此 Calendar的日历类型。
String getDisplayName(int field, int style, Locale locale)

返回给定的 style和 locale中的日历 field的字符串表示 locale 。
String,Integer> getDisplayNames(int field, int style, Locale locale)

返回 Map包含日历的所有名称 field在给定 style和 locale及其相应的字段值。
int getFirstDayOfWeek()

得到一周的第一天是什么 例如, SUNDAY在美国, MONDAY在法国。
abstract int getGreatestMinimum(int field)

返回此 Calendar实例的给定日历字段的最高最小值。
abstract int getLeastMaximum(int field)

返回此 Calendar实例的给定日历字段的最低最大值。
abstract int getMaximum(int field)

返回此 Calendar实例的给定日历字段的 Calendar 。
int getMinimalDaysInFirstWeek()

获得一年中第一周所需的最低限度的日子; 例如,如果第一周被定义为包含一年中的第一个月的第一个星期,则此方法返回1。
abstract int getMinimum(int field)

返回此 Calendar实例的给定日历字段的 Calendar 。
Date getTime()

返回一个 Date表示此物体 Calendar的时间值(毫秒从偏移 Epoch “)。
long getTimeInMillis()

以毫秒为单位返回此日历的时间值。
TimeZone getTimeZone()

获取时区。
int getWeeksInWeekYear()

返回由这个 Calendar表示的星期内的星期 Calendar 。
int getWeekYear()

返回这个 Calendar 。
int hashCode()

返回此日历的哈希码。
protected int internalGet(int field)

返回给定日历字段的值。
boolean isSet(int field)

确定给定的日历字段是否具有值集,包括由 get方法调用触发的内部字段计算设置的值。
boolean isWeekDateSupported()

返回此 Calendar是否支持周日期。
String toString()

返回此日历的字符串表示形式。
其它  
protected void complete()

填写日历字段中的任何未设置的字段。
boolean equals(Object obj)

将此 Calendar与指定的Object进行 Object 。
void clear()

将所有的日历字段值和时间值(毫秒从偏移Epoch如此) Calendar不确定。

Calendar类中的常量:

Calendar.DATE			当天 1-31

Calendar.DAY_OF_MONTH	当天 1-31

Calendar.DAY_OF_WEEK	从星期天开始计算,如果今天星期二,那么返回3

Calendar.DAY_OF_YEAR	一年中的第多少天

Calendar.HOUR			12小时制

Calendar.HOUR_OF_DAY	24小时制,一般使用这个属性赋值

Calendar.MILLISECOND	获取毫秒数

Calendar.MINUTE		分钟

Calendar.SECOND		获取秒

Calendar.WEEK_OF_MONTH	一个月中的第几周

Calendar.WEEK_OF_YEAR	一年中的第几周

Calendar.YEAR			年份

Calendar.MONTH			月份,从0到11表示12个月份,比实际月份值小1 

Calendar.AM_PM			0代表上午 1代表下午

Calendar.SUNDAY=1 		星期日

Calendar.MONDAY=2 		星期一
	
Calendar.TUESDAY=3 	星期二

Calendar.WEDNESDAY=4	星期三

Calendar.THURSDAY=5	星期四

Calendar.FRIDAY=6 		星期五

Calendar.SATURDAY=7 	星期六

设置、获取:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Calendar cal = Calendar.getInstance();	//创建默认时区用于获取或设置

cal.set(Calendar.YEAR, 2019);	//设置年份

cal.set(Calendar.MONTH, 9);	//设置月份

cal.set(2019, 7, 30, 13, 13, 13);	//设置年月日时分秒

System.out.println(cal.get(Calendar.DATE));	//取当前日期

System.out.println(cal.getMinimum(Calendar.DATE));	//取当前日期最小值

System.out.println(cal.getMaximum(Calendar.DATE));	//取当前日期最大值

System.out.println(sdf.format(cal.getTime()));	//格式化显示日期:2019-08-30