1. 程式人生 > >Java-很深我只知其一-Calendar類

Java-很深我只知其一-Calendar類

  • Calendar類一般用其獲取時間,和設定時間使用,不僅如此,還可以區分東西方星期
  • 首先Calendar類繼承了Objectimplements,Serializable,Cloneable,Comparable<Calendar>
  • 同時Calendar 是被 public 和 abstract 修飾的 所以,我們不能直接通過new 獲取例項物件
  • 需要通過其子類獲取例項物件 :
  • 獲取當前時間操作:
  • public class DemoOfChenyb {
    
         Calendar calendar = null;
     
         @Before
         public void test() {
             calendar = Calendar.getInstance();
         }
     
         // 基本用法,獲取年月日時分秒星期
         @Test
         public void test1() {
    
             // 獲取年
             int year = calendar.get(Calendar.YEAR);
     
             // 獲取月,這裡需要需要月份的範圍為0~11,因此獲取月份的時候需要+1才是當前月份值
             int month = calendar.get(Calendar.MONTH) + 1;
     
             // 獲取日
             int day = calendar.get(Calendar.DAY_OF_MONTH);
     
             // 獲取時
             int hour = calendar.get(Calendar.HOUR);
             // int hour = calendar.get(Calendar.HOUR_OF_DAY); // 24小時表示
     
             // 獲取分
             int minute = calendar.get(Calendar.MINUTE);
     
             // 獲取秒
             int second = calendar.get(Calendar.SECOND);
     
             // 獲取星期
             int weekday = calendar.get(Calendar.DAY_OF_WEEK);
     
         }
    } 
  • 時間設定

 

  •  三個引數 :年,月,日
  • calendar.set(2018, 10, 10);

 

  • 兩個引數
  • 第一個引數指定你要傳參的型別 Key
  • 年/Calendar.YEAR 月/Calendar.MONTH 日/Calendar.DAY_OF_MONTH
  • 第二個引數 Value 如:
calendar.set(Calendar.YEAR, 2018);
calendar.set(Calendar.MONTH , 7);

現在獲取的值,比如年,月,日時間就是我們提前設定好的了

 

  • 還可以在原有基礎上追加我們的操作

 

  • 當前天數操作 當然,年/月 都可以
calendar.add(Calendar.DATE, -1)

 

  • 例子: 獲取2018年7月的最後一天
calendar.set(calendar.get(Calendar.YEAR), 8, 1);//這裡我們先獲取下一個月的第一天
calendar.add(Calendar.DATE, -1);//追加操作,原日期 減少一天,就是我們想要的7月最後一天

 

Chenyb 隨筆記錄,方便學習

2018-10-26