Calendar和GregorianCalendar
Calendar类是个抽象类 ,为我们提供了 关于日期计算的相关功能,比如:年、 月、日、时、分、秒的展示和计算。
GregorianC alendar是Calendar的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统。
雷区:
注意月份的表示,一月是0,二月是1,以此类推,12月是11。因为大多数人习惯于使用单词而不是使用数字来表示月份,这样程序也许更易读,父类Calendar使用常量来表示月份: JANUARY、FEBRUARY等等。
GregorianCalendar类和Calendar类的使用:
public class _09CanlendarDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Calendar calendar = new GregorianCalendar(2019,5,1,01,01,01);
System.out.println(calendar);
int day = calendar.get(Calendar.DATE); //日期
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int weekday = calendar.get(Calendar.DAY_OF_WEEK); //星期几 1:星期日 2:星期一………………类推
System.out.println(year);
System.out.println(month); // 0-11表示对应月份
System.out.println(weekday);
System.out.println(day);
//设置日期相关元素
Calendar c2 = new GregorianCalendar(); //不传参数,默认当前日期
c2.set(Calendar.YEAR, 2019);
System.out.println(c2);
//日期计算
Calendar c3 = new GregorianCalendar();
c3.add(Calendar.DATE, -100); //往后一百天
System.out.println(c3);
//日期对象时间日期转换
Date d4 = c3.getTime();
Calendar c4 = new GregorianCalendar();
c4.setTime(new Date());
System.out.println(c4);
}
public static void printCanlender(Calendar c) {
//打印:1918年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_OF_WEEK)-1; //1-7.1周日,2周1,3周2....
String dayweek2 = dayweek==0?"日":dayweek+"";
int hour = c.get(Calendar.HOUR);
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND);
System.out.println(year+"年"+month+"月"+date+"日 "+hour+"时"+minute+"分"+second+
"秒"+" 周"+dayweek2);
}
}