我在向Google日历添加活动时遇到问题,因为它在Google日历屏幕中显示错误的结束日期但是如果您添加活动,则会生成具有正确结束日期的活动。不确定为什么它在结束日期前1天显示。
例如,如果结束日期是31日至8月,它将在日历预览屏幕上显示为8月30日,但事件仅生成于8月31日。
List<String> dateFormats = Arrays.asList(CALENDER_EVENT_DATE_FORMAT_1,
CALENDER_EVENT_DATE_FORMAT_2);
Calendar calStartDate = Calendar.getInstance();
Calendar calEndDate = Calendar.getInstance();
Date eventStartDate = null;
Date eventEndDate = null;
for (String format : dateFormats) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
try {
eventStartDate = sdf.parse(startDate);
eventEndDate = sdf.parse(endDate);
} catch (ParseException e) {
}
}
Intent intent = new Intent(Intent.ACTION_EDIT);
intent.setType(CALENDER_EVENT_TYPE);
intent.putExtra(CALENDER_EVENT_TITLE, title);
intent.putExtra(CALENDER_EVENT_DESC, note);
intent.putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY, isAllDay);
calStartDate.set(Calendar.HOUR_OF_DAY, 0); // set hour to midnight
calStartDate.set(Calendar.MINUTE, 0); // set minute in hour
calStartDate.set(Calendar.SECOND, 0); // set second in minute
calStartDate.set(Calendar.MILLISECOND, 0); // set millisecond in second
calStartDate.setTime(eventStartDate);
calEndDate.set(Calendar.HOUR_OF_DAY, 0); // set hour to midnight
calEndDate.set(Calendar.MINUTE, 0); // set minute in hour
calEndDate.set(Calendar.SECOND, 0); // set second in minute
calEndDate.set(Calendar.MILLISECOND, 0); // set millisecond in second
calEndDate.setTime(eventEndDate);
intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME,
calStartDate.getTimeInMillis());
intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME,
calEndDate.getTimeInMillis());
weakActivity.get().startActivity(intent);