日历类:
java.util.Calendar是日历类,在Date后出现,替换掉了许多Date的方法
Calendar类是一个抽象类.
里面提供啦很多操作日历字段的方法(YEAR,MONTH,DAY_OF_MONTH,HOUR)
无法直接创建对象来使用,里面有一个静态方法叫getInstance() 该方法返回的是Calendar类的子类对象
static Calendar getInstance()使用默认时区和语言环境获得一个日历
常用成员方法:
public int get(int field):返回给定日历字段的值
public void set(int field, int value):将给定的日历字段设置为定值
public abstract void add(int field, int amount):
根据日历的规则,为给定的日历字段添加或减去指定的时间量
public Date getTime():返回一个表示此Calendar的时间值(从历元到现在的毫秒值偏移量)的Date对象
===================================
public class CalendarCls {
public static void main(String[] args) {
//既然是一个静态方法,所以可以使用类名.getInstance()可以直接调用
Calendar c = Calendar.getInstance();//多态
System.out.println(c);
}
}
--------------------------------------
import java.util.Calendar;
import java.util.Date;
/*
* 常用成员方法:
* public int get(int field):返回给定日历字段的值
* public void set(int field, int value):将给定的日历字段设置为定值
* public abstract void add(int field, int amount):
* 根据日历的规则,为给定的日历字段添加或减去指定的时间量
* public Date getTime():返回一个表示此Calendar的时间值(从历元到现在的毫秒值偏移量)的Date对象
*
* 成员方法的参数:
* int field:日历类的字段,可以使用Calendar类的静态成员变量获取
* public static final int YEAR =1 ; 年
* public static final int MONTH = 2 ; 月
* public static final int DATE = 5 ; 月中某一天
* public static final int DAY_OF_MONTH = 5 ; 月中某一天
* public static final int HOUR= 10 ; 时
* public static final int MINUTE = 12 ; 分
* public static final int SECOND = 13 ; 秒
*
*
*
*/
public class CalendarDemo {
public static void main(String[] args) {
demo01();
// demo02();
// demo03();
demo04();
}
/*
* public int get (int field) : 返回给定日历字段的值
* 参数传递日历字段(YEAR MONTH)
* 返回值:日历字段代表具体的值
*/
private static void demo01(){
//使用getInstance方法获取Calendar对象 ,获取了一个日历类的对象
//getInstance()获取实例化的对象。
Calendar c = Calendar.getInstance();
//静态字段,可以通过类名直接获取
int year = c.get(Calendar.YEAR);
int year2 = c.get(Calendar.YEAR)+1;//可以这样写
System.out.println(year2);
//获取月份,因为西方是0到11月所以比中国获取的比中国的月份小一位
int month = c.get(Calendar.MONTH);
System.out.println(month);
//获取日
int day = c.get(Calendar.DATE);
System.out.println(day);
//获取月份中的某一天
int date = c.get(Calendar.DAY_OF_MONTH);
System.out.println(date);
}
/*
* public void set(int field,int value):将给定的日历字段设置为定值
* 参数传递日历字段(YEAR MONTH)
* int value:传递的字段设置具体的值
*
*/
private static void demo02(){
//使用getInstance方法获取Calendar对象 ,获取了一个日历类的对象
Calendar c = Calendar.getInstance();
//设置年为8888
c.set(Calendar.YEAR, 8888);
//设置月为
c.set(Calendar.MONTH, 9);
//设置日
c.set(Calendar.DATE, 28);
//同时设置年月日
c.set(9999, 9, 16);
int year = c.get(Calendar.YEAR);
System.out.println(year);
//获取月份,因为西方是0到11月所以比中国获取的比中国的月份小一位
int month = c.get(Calendar.MONTH);
System.out.println(month);
//获取日
int day = c.get(Calendar.DATE);
System.out.println(day);
//获取月份中的某一天
int date = c.get(Calendar.DAY_OF_MONTH);
System.out.println(date);
}
/*
* public abstract void add(int field, int amount):
* 根据日历的规则,为给定的日历字段添加或减去指定的时间量
* 把指定的字段增加/减少指定的值
* int field: 传递指定的日历字段
* int amount:增加/减少的值
* 正数:增加
* 负数:减少
*
*/
private static void demo03(){
//使用getInstance方法获取Calendar对象 ,获取了一个日历类的对象
Calendar c = Calendar.getInstance();
//把年增加两年
c.add(Calendar.YEAR, 2);
//把月份减少5个月
c.add(Calendar.MONTH, -5);
int year = c.get(Calendar.YEAR);
System.out.println(year);
//获取月份,因为西方是0到11月所以比中国获取的比中国的月份小一位
int month = c.get(Calendar.MONTH);
System.out.println(month);
//获取日
int day = c.get(Calendar.DATE);
System.out.println(day);
//获取月份中的某一天
int date = c.get(Calendar.DAY_OF_MONTH);
System.out.println(date);
}
/*
* public Date getTime():
* 返回一个表示此Calendar的时间值(从历元到现在的毫秒值偏移量)的Date对象
* 把日历转换为日期
*
*/
private static void demo04(){
//使用getInstance方法获取Calendar对象 ,获取了一个日历类的对象
Calendar c = Calendar.getInstance();
//把日历转换为日期。
Date date = c.getTime();
System.out.println(date);//Sun Dec 08 22:28:05 CST 2019
}
}