Calendar類是個抽象類 ,爲咱們提供了 關於日期計算的相關功能,好比:年、 月、日、時、分、秒的展現和計算。java
GregorianC alendar是Calendar的一個具體子類,提供了世界上大多數國家/地區使用的標準日曆系統。3d
雷區:code
注意月份的表示,一月是0,二月是1,以此類推,12月是11。由於大多數人習慣於使用單詞而不是使用數字來表示月份,這樣程序也許更易讀,父類Calendar使用常量來表示月份: JANUARY、FEBRUARY等等。對象
GregorianCalendar類和Calendar類的使用:blog
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); } }