目录
1、简介
2、获取具体日期字段信息
3、add
4、roll
5、set
1、简介
public abstract class Calendar extends Object implements Serializable, Cloneable, Comparable
所述Calendar类是一个抽象类,可以为在某一特定时刻和一组之间的转换的方法calendar fields如YEAR , MONTH , DAY_OF_MONTH , HOUR ,等等,以及用于操纵该日历字段,如获取的日期下个星期。 时间上的瞬间可以用毫秒值表示,该值是从1970年1月1日00:00 00:00.000 GMT(Gregorian)的Epoch的偏移量。
该类还提供了用于在包外部实现具体日历系统的其他字段和方法。 这些字段和方法定义为protected 。
与其他区域设置敏感的类一样, Calendar提供了一种类方法getInstance ,用于获取此类型的一般有用的对象。 Calendar的getInstance方法返回一个Calendar对象,其日历字段已使用当前日期和时间进行初始化:
Calendar calendar=Calendar.getInstance();
常用方法
//根据日历的规则,为给定的日历字段添加或减去指定的时间量。
abstract void add(int field, int amount)
//判断此 Calendar 表示的时间是否在指定 Object 表示的时间之后,返回判断结果。
boolean after(Object when)
// 判断此 Calendar 表示的时间是否在指定 Object 表示的时间之前,返回判断结果。
boolean before(Object when)
//给定此 Calendar 的时间值,返回指定日历字段可能拥有的最大值。
int getActualMaximum(int field)
// 给定此 Calendar 的时间值,返回指定日历字段可能拥有的最小值。
int getActualMinimum(int field)
// 获取一星期的第一天;例如,在美国,这一天是 SUNDAY,而在法国,这一天是 MONDAY。
int getFirstDayOfWeek()
//返回此 Calendar 实例给定日历字段的最高的最小值。
abstract int getGreatestMinimum(int field)
//使用默认时区和语言环境获得一个日历。
static Calendar getInstance()
//使用默认时区和指定语言环境获得一个日历。
static Calendar getInstance(Locale aLocale)
// 使用指定时区和默认语言环境获得一个日历。
static Calendar getInstance(TimeZone zone)
//使用指定时区和语言环境获得一个日历。
static Calendar getInstance(TimeZone zone, Locale aLocale)
//返回此 Calendar 实例给定日历字段的最低的最大值。
abstract int getLeastMaximum(int field)
//返回此 Calendar 实例给定日历字段的最大值。
abstract int getMaximum(int field)
// 获取一年中第一个星期所需的最少天数,例如,如果定义第一个星期包含一年第一个月的第一天,则此方法将返回 1。
int getMinimalDaysInFirstWeek()
// 设置一星期的第一天是哪一天;例如,在美国,这一天是 SUNDAY,而在法国,这一天是 MONDAY。
void setFirstDayOfWeek(int value)
// 设置一年中第一个星期所需的最少天数,例如,如果定义第一个星期包含一年第一个月的第一天,则使用值 1 调用此方法。
void setMinimalDaysInFirstWeek(int value)
// 使用给定的 Date 设置此 Calendar 的时间。
void setTime(Date date)
// 用给定的 long 值设置此 Calendar 的当前时间值。
void setTimeInMillis(long millis)
//返回此日历的字符串表示形式。
String toString()
2、获取具体日期字段信息
public static void main(String[] args) throws SQLException, ClassNotFoundException, IOException {
Calendar calendar=Calendar.getInstance();
System.out.println(calendar.get(Calendar.YEAR));//年
System.out.println(calendar.get(Calendar.MONTH)+1);//月
System.out.println(calendar.get(Calendar.DATE));//日
System.out.println(calendar.get(Calendar.HOUR));//小时
System.out.println(calendar.get(Calendar.MINUTE));//分钟
System.out.println(calendar.get(Calendar.SECOND));//秒
System.out.println(calendar.get(Calendar.MILLISECOND));//毫秒
}
3、add
Calendar calendar=Calendar.getInstance();
calendar.add(Calendar.YEAR, -1);//当前年份减一年
System.out.println(calendar.get(Calendar.YEAR));
4、roll
public abstract void roll(int calndr_field, boolean up_down)
Calendar calendar=Calendar.getInstance(); calendar.add(Calendar.YEAR, -1);//当前年份减一年 System.out.println(calendar.get(Calendar.YEAR));
4、roll
public abstract void roll(int calndr_field, boolean up_down)
参数:
calndr_field:这是日历类型,是指要对其进行操作的日历字段。
up_down:这是布尔类型,用于指示是向上或向下移动calndr_field还是增大或减小。 true表示添加时间单位,false表示减去时间单位。
Calendar calendar=Calendar.getInstance(); calendar.add(Calendar.YEAR, -1);//当前年份减一年 System.out.println(calendar.get(Calendar.YEAR));//2021 calendar.roll(Calendar.YEAR, true); System.out.println(calendar.get(Calendar.YEAR));//2022
5、set
public final void set(int year,
int month,
int date)
设置日历字段中的值YEAR , MONTH和DAY_OF_MONTH 。
参数
year - 用于设置 YEAR日历字段的值。
month - 用于设置MONTH日历字段的值。 月值为0。 例如,1月份为0。
date - 用于设置 DAY_OF_MONTH日历字段的值。
Calendar calendar=Calendar.getInstance();
System.out.println(calendar.getTime());
calendar.set(2018, 2, 1);
System.out.println(calendar.getTime());
//Fri May 06 11:03:50 CST 2022
//Thu Mar 01 11:03:50 CST 2018



