如何从本机日历中读取特定日期的事件

时间:2013-04-25 17:21:44

标签: android

我试图从我的应用程序(ICS及以上版本)读取本机日历事件,但有时它可以工作,有时它会显示一些不正确的值。目前我正在使用这段代码,任何人都可以告诉我我要去哪里错了..

Uri.Builder builder = Uri.parse("content://com.android.calendar/instances/when").buildUpon();
    long now = new Date().getTime();
    ContentUris.appendId(builder, now);
    ContentUris.appendId(builder, now + DateUtils.YEAR_IN_MILLIS);





    Cursor eventCursorr = cr.query(builder.build(),
            new String[] { "title", "begin","description"}, "Calendars._id=" + calID,
            null, "startDay ASC, startMinute ASC"); 

    while (eventCursorr.moveToNext()) {
        final String titler = eventCursorr.getString(0).trim();
        final Date beginr = new Date(eventCursorr.getLong(1));
        final String descriptionr = eventCursorr.getString(2).trim();



        SimpleDateFormat sdfrr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        String stimesr = sdfrr.format(beginr);


 System.out.println("titler "+titler +"stimesr "+stimesr +"descriptionr "+descriptionr );






    }





}

1 个答案:

答案 0 :(得分:0)

我解决了它们。

//StartTime 
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yy");
Date dateCC = formatter.parse("04/27/2013");
Calendar calendarStartDate = Calendar.getInstance();
calendar.setTime(dateCC);

//EndTime
SimpleDateFormat formatterr = new SimpleDateFormat("MM/dd/yy hh:mm:ss");

Calendar endOfDay = Calendar.getInstance();
Date dateCCC = formatterr.parse("04/27/2013 23:59:59");
endOfDay.setTime(dateCCC);

Cursor eventCursorr = cr.query(l_eventUri,
    new String[] {
    "title", "dtstart", "dtend"
}, "(" + dtstart + ">" + after + " and " + dtend + "<" + endOfDay.getTimeInMillis() + ")",
    null, "dtstart ASC");

while (eventCursorr.moveToNext()) {
    final String titler = eventCursorr.getString(0).trim();
    final Date beginr = new Date(eventCursorr.getLong(1));
    final String descriptionr = eventCursorr.getString(2).trim();

}