1.Java計算某一月份的最大天數
1 Calendar time=Calendar.getInstance();//使用默認時區和語言環境獲得一個日歷 2 time.clear(); 3 time.set(Calendar.YEAR,year); 4 time.set(Calendar.MONTH,i-1);//注意Calendar對象默認一月是為零的 5 int day=time.getActualMaximum(Calendar.DAY_OF_YEAR);//獲得本月份的天數
注意:在使用set方法之前,必須先調用clear(),否則很多信息會繼承自系統當前的時間
2.Java中Calendar和Date的轉化
(1)Calendar轉化為Date
1 Calendar cal=Calendar.getInstance(); 2 Date date=cal.getTime();
(2)Date轉換為Calendar
1 Date date=new Date(); 2 Calendar cal=Calendar.getInstance(); 3 cal.setTime();
3.Java格式化輸出日期時間
1 Date date=new Date(); 2 SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//設置日期時間格式 3 System.out.println(df.format(date));
4.Java計算一年中的第幾星期
(1)計算某一天是一年中的第幾星期
1 Calendar cal=Calendar.getInstance(); 2 cal.set(Calendar.YEAR,2012); 3 cal.set(Calendar.MONTH); 4 cal.set(Calendar.DAY_OF_MONTH,3); 5 int weekno=cal.get(Calendar.WEEK_OF_YEAR);
(2)計算一年中的星期幾是幾號
1 SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); 2 Calendar cal=Calendar.getInstance(); 3 cal.set(Calendar.YEAR,2012); 4 cal.set(Calendar.WEEK_OF_YEAR,1); 5 cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY); 6 System.out.println(df.format(cal.getTime()));
輸出結果為:
2012-01-02
5.add()和roll()的用法
(1)add()方法
1 SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); 2 Calendar cal=Calendar.getInstance(); 3 cal.set(Calendar.YEAR,2012);//設置年份 4 cal.set(Calendar.MONTH,5);//設置月份 5 cal.set(Calendar.DAY_OF_MONTH,5); 6 cal.add(Calendar.DATE,-4); 7 Date date=cal.getTime(); 8 System.out.println(df.format(date)); 9 cal.add(Calendar.DATE,4); 10 date=cal.getTime(); 11 System.out.println(df.format(date));
輸出結果為:
2012-06-05
2012-06-01
(2)roll()方法
1 SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); 2 Calendar cal=Calendar.getInstance(); 3 cal.set(Calendar.YEAR, 2012); 4 cal.set(Calendar.MONTH,8); 5 cal.set(Calendar.DAY_OF_MONTH, 3); 6 cal.roll(Calendar.DATE,-4); 7 Date date=cal.getTime(); 8 System.out.println(df.format(date)); 9 cal.roll(Calendar.DATE,4); 10 date=cal.getTime(); 11 System.out.println(df.format(date));
輸出結果為:
2012-09-29
2012-09-03
可見,roll()方法在本月內循環,一般使用add()方法;