1.計算某一月份的最大天數:
Calendar time=Calendar.getInstance(); time.clear(); time.set(Calendar.YEAR,year); //year 為 int time.set(Calendar.MONTH,i-1);//注意,Calendar對象默認一月為0 int day=time.getActualMaximum(Calendar.DAY_OF_MONTH);//本月份的天數
注:在使用set方法之前,必須先clear一下,否則很多信息會繼承自系統當前時間
2.Calendar和Date的轉化:
(1) Calendar轉化為Date:
Calendar cal=Calendar.getInstance(); Date date=cal.getTime();
(2) Date轉化為Calendar:
Date date=new Date(); Calendar cal=Calendar.getInstance(); cal.setTime(date);
3.格式化輸出日期時間 (這個用的比較多):
Date date=new Date(); SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String time=df.format(date); System.out.println(time);
4.計算一年中的第幾星期:
(1)計算某一天是一年中的第幾星期:
Calendar cal=Calendar.getInstance(); cal.set(Calendar.YEAR, 2006); cal.set(Calendar.MONTH, 8); cal.set(Calendar.DAY_OF_MONTH, 3); int weekno=cal.get(Calendar.WEEK_OF_YEAR);
(2)計算一年中的第幾星期是幾號:
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); Calendar cal=Calendar.getInstance(); cal.set(Calendar.YEAR, 2006); cal.set(Calendar.WEEK_OF_YEAR, 1); cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); System.out.println(df.format(cal.getTime())); 輸出: 2006-01-02
5.add()和roll()的用法(不太常用):
(1)add()方法 SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); Calendar cal=Calendar.getInstance(); cal.set(Calendar.YEAR, 2006); cal.set(Calendar.MONTH, 8); cal.set(Calendar.DAY_OF_MONTH, 3); cal.add(Calendar.DATE, -4); Date date=cal.getTime(); System.out.println(df.format(date)); cal.add(Calendar.DATE, 4); date=cal.getTime(); System.out.println(df.format(date)); 輸出: 2006-08-30 2006-09-03 (2)roll方法 cal.set(Calendar.YEAR, 2006); cal.set(Calendar.MONTH, 8); cal.set(Calendar.DAY_OF_MONTH, 3); cal.roll(Calendar.DATE, -4); date=cal.getTime(); System.out.println(df.format(date)); cal.roll(Calendar.DATE, 4); date=cal.getTime(); System.out.println(df.format(date)); 輸出: 2006-09-29 2006-09-03
可見,roll()方法在本月內循環,一般使用add()方法。
以上為常用java date 方法集合的第一部分,如要完整了解,請關注第二部分。