2012-02-28 38 views
0

我從服務器響應如下如何從這個日期格式「MMM DD,YYYY」得到長久價值黑莓

<reminder><text>Hello Dude!</text><date>June 2, 2011</date></reminder>

我成功解析的信息。現在我需要添加關於黑莓提醒的信息。

我用下面的代碼:

try 
{ 

    Event _event; 

    String Calenderevent = "Hello Dude."; 

    EventList eventList = (EventList) PIM.getInstance().openPIMList(PIM.EVENT_LIST, PIM.WRITE_ONLY); 

    _event = eventList.createEvent(); 

    long l= HttpDateParser.parse("June 2, 2011"); 

    _event.addString(Event.SUMMARY, PIMItem.ATTR_NONE,Calenderevent); 
    _event.addDate(Event.START, PIMItem.ATTR_NONE, l); 
    RepeatRule rule = new RepeatRule(); 
    rule.setInt(RepeatRule.FREQUENCY,RepeatRule.YEARLY); 
    _event.setRepeat(rule); 
    //If you need to repeat the event then use repeatrule. 

    _event.commit(); 

    Dialog.alert("Calendar event success."); 
} 
catch (PIMException e) 
{ 
    Dialog.alert("Exception: "+e); 
    e.printStackTrace(); 
} 

當我在黑莓日曆看到,該信息顯示在2011年12月31日

的問題發生在下面一行。

long l= HttpDateParser.parse("June 2, 2011");

,則返回值-1。

如何從日期格式「MMM dd,yyyy」在黑莓上獲得長期價值。

請幫我。

+2

我認爲你的日期格式錯誤,看文檔在http://www.blackberry.com/developers/docs/6.0.0api/net/rim/device/api/io/http/HttpDateParser.html我知道雖然沒有關於黑莓環境,但我想你可以使用Java內置的其他日期函數 – Joel 2012-02-28 12:52:22

回答

1

正如Joel注意到的,你的日期格式不支持HttpDateParser。一種可能的解決方案是將您的日期轉換爲HttpDateParser支持的格式之一,然後使用parse()方法對其進行解析。

此代碼將您的日期轉換爲Wdy,Mon DD YYYY HHMMSS格式,然後解析它。

String date = "June 2, 2011";  
    String time = "120000"; // desired time HHMMSS 

    long l = 0; 

    try { 
     StringBuffer sbDate = new StringBuffer(); 

     // append WEEKDAY. weekday is not relevant for the HttpParser. 
     sbDate.append("Sun, "); 

     // remove comma after month 
     int commaIndex = date.indexOf(","); 
     sbDate.append(date.substring(0, commaIndex)); 
     sbDate.append(date.substring(commaIndex+1)); 

     sbDate.append(' ').append(time); 

     l=HttpDateParser.parse(sbDate.toString()); 

    } catch (IndexOutOfBoundsException e) { 
     // the date is in wrong format 
    } 

從我做了測試,WDY沒有被HttpDateParser考慮。它會在任何有效的工作日返回正確的結果。這對我來說很有意義,因爲真正需要的是DAY,MONTH和YEAR。

+0

謝謝你的朋友。你的代碼完美工作。非常感謝你。 – RVG 2012-02-29 04:33:09

相關問題