簡述Calendar日歷類
public abstract class Calendar implements Serializable, Cloneable, Comparable<Calendar>
該類被abstract修飾,不能被new的方式實例。Calendar提供了一個方法—getInstance,獲得此類型的一個通用的對象,getInstance方法返回一個Calendar對象(該對象為Calendar子類對象)。
Calendar calendar = Calendar.getInstance();
為了更加便捷的對日期進行操作,Calendar類對YEAR、MONTH、DAY_OF_MONTH、HOUR等日歷字段直接轉換提供了一些方法,並為操作日歷字段提供了一些方法。
測試:
@Test public void test(){ Calendar calendar =Calendar.getInstance(); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); System.out.print(sdf.format(calendar.getTime())); }
結果:2019-07-03 —— 當前日期
Calendar還提供了一些常用方法 Calendar calendar = null; @Before public void init(){ calendar =Calendar.getInstance();
} @Test public void test(){ calendar =Calendar.getInstance(); //實例一個日歷 //獲取當前的日期 int year = calendar.get(Calendar.YEAR); System.out.print(year+"年"); //獲得當前年份 int monday = calendar.get(Calendar.MONDAY); System.out.print((monday+1)+"月"); //獲得月份,減一,需要得到真正的月份需要+1 int week = calendar.get(Calendar.WEEK_OF_YEAR); System.out.print(week+"周"); //獲得當前周 int day = calendar.get(Calendar.DAY_OF_MONTH); System.out.print(day+"日"); //獲得當前天數 int hour = calendar.get(Calendar.HOUR); System.out.print(hour+"時"); //獲得小時 int minute = calendar.get(Calendar.MINUTE); System.out.print(minute+"分"); //獲得分鍾 int second = calendar.get(Calendar.SECOND); System.out.print(second+"秒"); //獲得秒鍾 } @Test public void test2(){ //設置時間 //對指定的年份做處理 //calendar.add(Calendar.YEAR,-1); //指定一個月份 int currmonday = 10; System.out.println(Calendar.MONTH); System.out.println(Calendar.DAY_OF_MONTH); //固定一個時間點,我們找的是10月份的最后一天,但是MONTH的設置,月份會比我們設置的月份大一個月
calendar.set(calendar.get(Calendar.YEAR),currmonday,1); //使用add方法設置將剛才我們設置的天數1少一天 calendar.add(Calendar.DATE,-1); System.out.println(calendar.get(Calendar.MONTH)); System.out.println(calendar.get(Calendar.DATE)); }
Calendar類中還有許多方法如claer()、compareTo()、等
Calendar calendar = null;
@Before
public void init(){
calendar =Calendar.getInstance();
}
@Test
public void test(){
calendar =Calendar.getInstance(); //實例一個日歷
//獲取當前的日期
int year = calendar.get(Calendar.YEAR);
System.out.print(year+"年"); //獲得當前年份
int monday = calendar.get(Calendar.MONDAY);
System.out.print((monday+1)+"月"); //獲得月份,減一,需要得到真正的月份需要+1
int week = calendar.get(Calendar.WEEK_OF_YEAR);
System.out.print(week+"周"); //獲得當前周
int day = calendar.get(Calendar.DAY_OF_MONTH);
System.out.print(day+"日"); //獲得當前天數
int hour = calendar.get(Calendar.HOUR);
System.out.print(hour+"時"); //獲得小時
int minute = calendar.get(Calendar.MINUTE);
System.out.print(minute+"分"); //獲得分鍾
int second = calendar.get(Calendar.SECOND);
System.out.print(second+"秒"); //獲得秒鍾
}
@Test
public void test2(){
//設置時間
//對指定的年份做處理
//calendar.add(Calendar.YEAR,-1);
//指定一個月份
int currmonday = 10;
System.out.println(Calendar.MONTH);
System.out.println(Calendar.DAY_OF_MONTH);
//固定一個時間點,我們找的是10月份的最后一天,但是MONTH的設置,月份會比我們設置的月份大一個月
calendar.set(calendar.get(Calendar.YEAR),currmonday,1);
//使用add方法查找到
calendar.add(Calendar.DATE,-1);
System.out.println(calendar.get(Calendar.MONTH));
System.out.println(calendar.get(Calendar.DATE));
//得到最大月份
System.out.println(calendar.getActualMaximum(currmonday)+1);
}