我想获得今天所有的事件实例。为此,我使用以下代码:
Uri.Builder eventsUriBuilder = CalendarContract.Instances.CONTENT_URI.buildUpon();
ContentUris.appendId(eventsUriBuilder, start);
ContentUris.appendId(eventsUriBuilder, end);
final Cursor cursorInstances = contentResolver.query(eventsUri, null, null, null, sortOrder);
除了全天事件实例外,它很好,它会在今天和明天都返回!
更新 我知道为什么会这样,因为带有全天标志的事件实例的时区是Utc但是我在当地时间得到了这个事件,所以这就是为什么但我仍然不知道如何处理它。
有人能帮助我吗?
答案 0 :(得分:0)
尝试使用此SO post answer中的代码。
Uri.Builder eventsUriBuilder = CalendarContract.Instances.CONTENT_URI.buildUpon();
ContentUris.appendId(eventsUriBuilder, timeNow);
ContentUris.appendId(eventsUriBuilder, endOfToday);
Uri eventsUri = eventsUriBuilder.build();
Cursor cursor = null;
cursor = mContext.getContentResolver().query(eventsUri, columns, null, null, CalendarContract.Instances.DTSTART + " ASC");
注意: 您必须将时间限制附加到事件uri,您不能以任何其他方式排序。为了包括全天活动, 只需将搜索范围扩大到前一天晚上11:59 PM和凌晨12:00 今晚。