2015-03-08 61 views
0

我在解析僅包含MONTH和DAY信息到日期對象中的字符串時遇到問題。通過其他線程看,我決定使用SimpleDateFormatter。這裏是我的代碼:將字符串解析爲日曆對象

void checkDay(Calendar now) { 
    Calendar cal = Calendar.getInstance(now.getTimeZone()); 
    for (String holiday : usHolidayList) { 
     Date holidayDate = null; 
     try { 
      holidayDate = new SimpleDateFormat("MM/DD").parse(holiday); 
     } catch (ParseException e) { 
      e.printStackTrace(); 
     } 
     checkNotNull(holidayDate); 
     cal.setTime(holidayDate); 
     if (now.get(Calendar.MONTH) == cal.get(Calendar.MONTH) && now.get(Calendar.DAY_OF_MONTH) == cal.get(Calendar.DAY_OF_MONTH)) { 
      return true; 
     } 
    } 
    return false; 
} 

usHolidayList就像 - >「01/01」 05/25" 僅包含月份和日期信息,我只需要得到05/25和改造這一個日期。我不計較年或時間的組件。

隨着我當前的代碼,這一天似乎是正確解析但當月總是被設置爲一月。

Thu Jan 01 00:00:00 UTC 1970 
Sun Jan 25 00:00:00 UTC 1970 

我希望它是 Thu Jan 01 00:00:00 UTC 1970 Sun 5月25日00:00:00 UTC 1970

真的很欣賞一些想法。

回答

0

我想出了我做錯了什麼。這是SimpleDateFormatter中的模式 holidayDate = new SimpleDateFormat(「MM/DD」)。parse(holiday);

應該是: holidayDate = new SimpleDateFormat(「MM/dd」)。parse(holiday);

DD - 日在一年 DD - 天在一個月內(這是我想要什麼) 因爲我所有的日期是在30,但掉到1月,我相信