java.util.Calendar
public abstract class Calendar extends Object implements Serializable, Cloneable, Comparable<Calendar>
概念: Calendar作为日历类
提示:
该类作为抽象类,所有不能实例化,Calendar提供了public static Calendar getInstance()方法来获取实例
(该对象为Calendar的子类对象),其日历字段已由当前日期和时间初始化:)
// JDK源代码
public static Calendar getInstance()
{
return createCalendar(TimeZone.getDefault(), Locale.getDefault(Locale.Category.FORMAT));
}
字段:
Calendar提供大量的字段来表示日期,如:YEAR、MONTH、DAY_OF_MONTH、HOURYEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。
** | ** |
---|---|
YEAR | 年 |
MONTH | 月(从0开始,可以+1使用) |
DAY_OF_MONTH | 月中的天(几号) |
HOUR | 时(12小时制) |
HOUR_OF_DAY | 时(24小时制) |
MINUTE | 分 |
SECOND | 秒 |
DAY_OF_WEEK | 周中的天(周几,周日为1,可以-1使用) |
方法:
定义:
public abstract void add(int field, int amount)(根据日历的规则,将指定的时间量添加或减去给定的日历字段。)
public final Date getTime() (返回一个 Date
表示此物体 Calendar
的时间值)
public void set(int field,int value) (将给定的日历字段设置为给定的值)
public int get(int field) (返回给定日历字段的值)
代码演示:
public class Test{
public static void main(String[] args){
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.DAY_OF_WEEK));
System.out.println("时:"+calendar.get(Calendar.HOUR_OF_DAY));
System.out.println("分:"+calendar.get(Calendar.MINUTE));
System.out.println("秒:"+calendar.get(Calendar.SECOND));
calendar.setTime(new Date());
calendar.add(Calendar.YEAR,1);
calendar.add(Calendar.YEAR,-1);
calendar.set(Calendar.YEAR,2021);
calendar.get(Calendar.YEAR);
}
}