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.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