2014-03-05 51 views
0

我有一個iCalendar格式字符串,像這樣: http://en.wikipedia.org/wiki/ICalendar 我想在日曆對象中轉換它。 我該怎麼做?我必須自己解析字符串還是有一些方法可以做到這一點?iCalendar字符串到日曆

編輯: 在最後我使這個解決方案:

Intent intent = new Intent(Intent.ACTION_EDIT); 
intent.setType("vnd.android.cursor.item/event"); 
String[] split=s.split("\n|(:)"); 
       for(int i=0;i<split.length;i++){ 
        if(split[i].contains("DTSTART")){ 
         //next String contain the data start 
         String s1=split[i+1]; 
         s1=s1.replace("T", "");//remove T 
         s1=s1.replace("00Z", "");//remove final part 
         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmm"); 
         Date date; 
         try { 
          date = sdf.parse(s1); 
          Log.d("", "START "+date.getTime()); 
          intent.putExtra("beginTime",date.getTime()); 
         } catch (ParseException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
         } 

        } 

        if(split[i].contains("DTEND")){ 
         //next string contains the data end 
         String s1=split[i+1]; 
         s1=s1.replace("T", "");//remove T 
         s1=s1.replace("00Z", "");//remove final part 
         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmm"); 
         Date date; 
         try { 
          date = sdf.parse(s1); 
          Log.d("", "END "+date.getTime()); 
          intent.putExtra("endTime", date.getTime()); 
         } catch (ParseException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
         } 
        } 

        if(split[i].contains("LOCATION")){ 
         //next string contains location 
         Log.d("", "Luogo "+split[i+1]); 
         intent.putExtra("eventLocation",split[i+1]); 

        } 

        if(split[i].contains("DESCRIPTION")){ 
         //next string contains location 
         Log.d("", "Descrizione "+split[i+1]); 
         intent.putExtra("description",split[i+1]); 

        } 

        if(split[i].contains("SUMMARY")){ 
         //next string contains title 
         Log.d("", "Titolo "+split[i+1]); 
         intent.putExtra("title",split[i+1]); 

        } 

       } 
startActivity(intent); 
+0

您需要提供有關您的特定問題的更多信息。 Android的'日曆'不是通常意義上的日曆,而是一種獲取關於特定日期/時間的信息的方式。如果您想要直接翻譯ICalendar文件,則需要使用現有的庫,例如[ical4j](http://sourceforge.net/projects/ical4j/)或編寫您自己的解析系統來獲取信息。 – jgm

回答

0

您可以檢查出iCal4j庫here。它可能會幫助你。

+0

我不想創建.ics文件,只是Android中的Calendar對象。 – darkalbo