Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android iCalendar字符串到日历_Android_Icalendar - Fatal编程技术网

Android iCalendar字符串到日历

Android iCalendar字符串到日历,android,icalendar,Android,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<

我有一个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);
Intent Intent=新意图(Intent.ACTION\u EDIT);
intent.setType(“vnd.android.cursor.item/event”);
字符串[]split=s.split(“\n |(:)”);

对于(int i=0;i您可以查看iCal4j库。它可能会对您有所帮助。

我不想创建.ics文件,只是Android中的Calendar对象。您需要提供有关您的特定问题的更多信息。Android的
Calendar
不是通常意义上的日历,而是获取特定日期/时间信息的一种方式。如果您想要direct翻译ICalendar文件您需要使用现有库(如)或编写自己的解析系统来获取信息。