У меня возникла проблема при добавлении события в Календарь Google, так как в нем отображается неверная дата окончания на экране Календаря Google. Но если вы добавите событие, оно создаст событие с правильной датой окончания.Не уверен, почему он показывает за 1 день до даты окончания.
Например, если дата окончания 31 августа, он будет отображаться на экране предварительного просмотра календаря как 30 августа, но событие генерируется для 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);