1、日历类,Date中的很多方法都被Calendar中的方法取代:
侧重点:年、月、日、时、分、秒、...
类型:java.util.Calendar 抽象类
子类型:GregorianCalendar 具体类
获取日历对象的方式如下:
方式一:Calendar类的静态方法getInstance,得到当前的日历对象
方式二:使用GregorianCalendar的构造方法,常用构造方法如下
GregorianCalendar()
在具有默认语言环境的默认时区内使用当前时间构造一个默认的 GregorianCalendar。
GregorianCalendar(int year, int month, int dayOfMonth)
在具有默认语言环境的默认时区内构造一个带有给定日期设置的 GregorianCalendar。
GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute)
为具有默认语言环境的默认时区构造一个具有给定日期和时间设置的 GregorianCalendar。
GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second)
为具有默认语言环境的默认时区构造一个具有给定日期和时间设置的 GregorianCalendar。
2、常用方法:
第一波:获取操作
int get(int field):返回给定日历字段的值。
第二波:设置操作
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、MINUTE 和 SECOND 的值。
第三波:类型转换操作
Date getTime():返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。
void setTime(Date date):使用给定的 Date 设置此 Calendar 的时间。
第四波:偏移操作
abstract void add(int field, int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。
3、具体使用方法的测试代码:从test1()到test5()
public class TestCalendar {
public static void main(String[] args) {
//test1()到test5()是Calendar类常用的方法
test1();
}
public static void test5() {
/*
偏移操作:
*/
Calendar c = Calendar.getInstance();
System.out.println(c);
//需求1:得到100天以后的日历对象
//c.add(Calendar.DATE, 100);
//需求2:得到10分钟以前的日历对象
c.add(Calendar.MINUTE, -10);
System.out.println(c);
}
public static void test4() {
/*
类型转换操作:
*/
Calendar c = Calendar.getInstance();
//日历 -> 日期
Date d = c.getTime();
//日期 -> 时间戳
long time = d.getTime();
System.out.println(time);
//时间戳 -> 日期
//方式一:
Date d2 = new Date(time);
//方式二:
d.setTime(time);
//日期 -> 日历
c.setTime(d2);
}
public static void test3() {
/*
设置操作
*/
Calendar c = Calendar.getInstance();
System.out.println(c);
//需求1:将日历对象的年月日字段信息设置为2011年11月11日
c.set(Calendar.YEAR, 2011);
c.set(Calendar.MONTH, 10);
c.set(Calendar.DATE, 11);
System.out.println(c);
//需求2:将日历对象的年月日字段信息设置为2012年12月12日
c.set(2012, 11, 12);
System.out.println(c);
}
public static void test2() {
/*
获取操作:
*/
Calendar c = Calendar.getInstance();
//需求:得到年、月、日的信息,打印看效果
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH) + 1;
int day = c.get(Calendar.DATE);
System.out.println(year + "年" + month + "月" + day + "日");
}
public static void test1() {
//获取当前的日历对象
Calendar c1 = Calendar.getInstance();
Calendar c2 = new GregorianCalendar();
System.out.println(c1);
System.out.println(c2);
}
}
本电子书目录:《Java基础的重点知识点全集》