Java獲取日期屬於當年第幾周

Java代碼  收藏代碼
  1. String today = "2013-01-14";  
  2. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");  
  3. Date date = null;  
  4. try {  
  5.     date = format.parse(today);  
  6. catch (ParseException e) {  
  7.     // TODO Auto-generated catch block  
  8.     e.printStackTrace();  
  9. }  
  10.   
  11. Calendar calendar = Calendar.getInstance();  
  12. calendar.setFirstDayOfWeek(Calendar.MONDAY);  
  13. calendar.setTime(date);  
  14.   
  15. System.out.println(calendar.get(Calendar.WEEK_OF_YEAR));  

 

用到判斷日期屬於當年的第幾周,用了一個有點複雜的代碼。看Calendar類時,看到了WEEK_OF_YEAR,很實用。但是用時又出現了點小問題,比如2010-01-03,返回的結果是2(即2010年的第二個星期),原因是美國是以週日爲每週的第一天。

  我想到了更改星期的起始日,setFirstDayOfWeek(int value),傳了一個1,想把週一設成第一天,但是沒有起到效果。查文檔後改成了Calendar.MONDAY就好使了,卻不太清楚爲什麼用1不好使,用Calendar.MONDAY就行呢?

  

  補:又查看了一下“常量字段值”,發現MONDAY的值根本就不是想當然的1,而是2。

  SUNDAY :1

  MONDYA :2

  TUESDAY :3

  WEDNESDAY :4

  THURSDAY : 5

  FRIDAY : 6

  SATURDAY :7

發佈了68 篇原創文章 · 獲贊 17 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章