Calendar 类是一个抽象类,为我们提供了关于日期计算的相关功能,比如:年、月、日、时、分、秒的展示和计算。
GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统。
菜鸟雷区
注意月份的表示,一月是0,二月是1,以此类推,12月是11。 因为大多数人习惯于使用单词而不是使用数字来表示月份,这样程序也许更易读,父类Calendar使用常量来表示月份:JANUARY、FEBRUARY等等。
示例1:GregorianCalendar类和Calendar类的使用
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
/**
* 测试日期类的使用
*
*/
public class Test {
public static void main(String[] args) {
//获得日期的相关元素
Calendar calendar = new GregorianCalendar(2999,10,9,22,10,50); //年、月、日、时、分、秒
System.out.println(calendar);
int year = calendar.get(calendar.YEAR); //获取年份
System.out.println(year);
int month = calendar.get(calendar.MONTH); //获取月份
System.out.println(month); //0-11表示月份。0代表1月,1代表2月,2代表3月,,,11代表12月
int weekday = calendar.get(calendar.DAY_OF_WEEK); //星期几,1是星期日,2是星期一,,,7是星期六
System.out.println(weekday);
int day = calendar.get(calendar.DATE); //几号,也可以使用:DAY_OF_MONTH
System.out.println(day);
//设置日期的相关元素
Calendar c2 = new GregorianCalendar();
System.out.println(c2);
c2.set(Calendar.YEAR, 8012); //设置年份
//日期的计算
Calendar c3 = new GregorianCalendar();
c3.add(Calendar.YEAR, -100); //往前100年
System.out.println(c3);
//日期对象和时间对象的转换
Date d4 = c3.getTime();
Calendar c4 = new GregorianCalendar();
c4.setTime(new Date());
printCalerdar(c4);
}
public static void printCalerdar(Calendar c) {
//从1983年10月10日,11:23:45 周三
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH) + 1; //0-11
int date = c.get(Calendar.DAY_OF_MONTH); //几号
int dayweek = c.get(Calendar.DAY_O