Calendar是日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息(年、月、日等)封装为静态成员变量,方便获取。
Calendar抽象类常用方法:Demo1.java:
package cn.xxx.demo;
import java.util.Calendar;
import java.util.Date;
public class Demo1 {
public static void main(String[] args) {
function_2();
}
/*
* Calendar类的方法getTime()
* 把日历对象,转成Date日期对象
*/
public static void function_3(){
Calendar c = Calendar.getInstance();
Date date = c.getTime();
System.out.println(date);
}
/*
* Calendar类方法add 日历的偏移量,
* 可以指定一个日历中的字段,
* 进行整数的偏移 add(int field, int value)
*/
public static void function_2() {
Calendar c = Calendar.getInstance(); // 获取当前时间的日历对象。
// 让日历中的天数,向前偏移280天
c.add(Calendar.DAY_OF_MONTH, -280);
// 获取年份
int year = c.get(Calendar.YEAR);
// 获取月份
int month = c.get(Calendar.MONTH) + 1; // 月份+1。英语中月份从0开始算。
// 获取天数
int day = c.get(Calendar.DAY_OF_MONTH);
System.out.println(year + "年" + month + "月" + day + "日");
int week = c.get(Calendar.DAY_OF_WEEK)-1; // 星期数-1。英语中星期日是一周的第一天。 (需要对负数再进行处理)
System.out.println(week);
}
/*
* Calendar类的set方法 设置日历 set(int field,int value) field 设置的是哪个日历字段 value
* 设置后的具体数值
*
* set(int year,int month,int day) 传递3个整数的年,月,日
*/
public static void function_1() {
Calendar c = Calendar.getInstance(); // 当前时间的日历对象。
// 设置,月份,设置到10月分
// c.set(Calendar.MONTH, 9); // 设置指定时间的日历对象。
// 设置年,月,日
c.set(2099, 4, 1);
// 获取年份
int year = c.get(Calendar.YEAR);
// 获取月份
int month = c.get(Calendar.MONTH) + 1;
// 获取天数
int day = c.get(Calendar.DAY_OF_MONTH);
System.out.println(year + "年" + month + "月" + day + "日");
}
/*
* Calendar类的get方法 获取日历字段的值 int get(int) 参数int,获取的哪个日历字段 返回值,就表示日历字段的具体数值
*/
public static void function() {
Calendar c = Calendar.getInstance();
// 获取年份
int year = c.get(Calendar.YEAR);
// 获取月份
int month = c.get(Calendar.MONTH) + 1;
// 获取天数
int day = c.get(Calendar.DAY_OF_MONTH);
System.out.println(year + "年" + month + "月" + day + "日");
}
}
Demo.java(getInstance()获取直接已知子类对象):
package cn.xxx.demo;
import java.util.Calendar;
/*
* 日历类 java.util.Calendar
* 抽象类,使用他的子类对象 GregorianCalendar直接已知子类
*
* Calendar类写了静态方法 getInstance() 直接返回了子类的对象
* 不需要直接new 子类的对象,通过静态方法直接获取
*/
public class Demo {
public static void main(String[] args) {
Calendar c = Calendar.getInstance(); // 静态方法获取直接已知子类对象。 获取当前时间的日历对象。
System.out.println(c); // GregorianCalendar子类对象。
}
}