У меня по умолчанию для часового пояса эмулятора задано Тихоокеанское, а в календаре написано 3 часа дня, но когда вы идете отредактировать событие, в нем появляется 6 часов вечера.

аюсь преобразовать строку «2018-10-17T22: 00: 00Z» в восточный часовой пояс при добавлении ее в качестве события в календарь, но вместо добавления времени события как 6 вечера он добавляет его как 10 вечера. Любая помощь будет оценена.

String[] segments = uri.getPath().split("/");
Date startDate = null;
Date endDate = null;
Activity activity = (Activity) context;
String stTime = "2018-10-17T22:00:00Z";
String enTime = "2018-10-17T23:00:00Z";
String eventTitle = segments[3];
String eventLocation = segments[4];

TimeZone timezone = TimeZone.getTimeZone("America/New_York");

SimpleDateFormat formatStart = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
formatStart.setTimeZone(timezone);

SimpleDateFormat formatEnd = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
formatEnd.setTimeZone(timezone);

try {
    startDate = formatStart.parse(stTime);
    endDate = formatEnd.parse(enTime);
} catch (ParseException e) {
    e.printStackTrace();
}

Calendar calStart = new GregorianCalendar(timezone);
calStart.setTime(startDate);

Calendar calEnd = new GregorianCalendar(timezone);
calEnd.setTime(endDate);


if (ActivityCompat.checkSelfPermission(this.context, android.Manifest.permission.WRITE_CALENDAR) != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(activity, new String[]{android.Manifest.permission.WRITE_CALENDAR},1);
}

Calendar beginTime = Calendar.getInstance();
beginTime.set(calStart.get(Calendar.YEAR), calStart.get(Calendar.MONTH), calStart.get(Calendar.DAY_OF_MONTH), calStart.get(Calendar.HOUR_OF_DAY), calStart.get(Calendar.MINUTE));

Calendar endTime = Calendar.getInstance();
endTime.set(calEnd.get(Calendar.YEAR), calEnd.get(Calendar.MONTH), calEnd.get(Calendar.DAY_OF_MONTH), calEnd.get(Calendar.HOUR_OF_DAY), calEnd.get(Calendar.MINUTE));

ContentResolver cr = context.getContentResolver();
ContentValues values = new ContentValues();
values.put(CalendarContract.Events.DTSTART, beginTime.getTimeInMillis());
values.put(CalendarContract.Events.DTEND, endTime.getTimeInMillis());
values.put(CalendarContract.Events.TITLE, eventTitle);
values.put(CalendarContract.Events.CALENDAR_ID, 1);
values.put(CalendarContract.Events.EVENT_TIMEZONE, "America/New_York");
values.put(CalendarContract.Events.EVENT_LOCATION, eventLocation);

cr.insert(CalendarContract.Events.CONTENT_URI, values);
Toast.makeText(context, "Successfully Added Event", Toast.LENGTH_SHORT).show();

Ответы на вопрос(1)

Ваш ответ на вопрос