为什么不希望将时区偏移量添加到时间(03:00 到 08:00)

Why is Timezone offset added to Time undesirably (03:00 to 08:00)

在 Android 应用程序中,我将事件添加到用户的日历。

我的问题是,当它存储在 Google 日历中时,我保存的时间发生了变化(意味着 03:00 到 08:00 +0500 的偏移量添加到时间中我的时区 +0500)

请指导我做错了什么..

我正在使用此代码为日历事件设置时间和日期

calendar.set(year, monthOfYear, dayOfMonth);

calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
calendar.set(Calendar.MINUTE, minute);
calendar.setTimeZone(TimeZone.getTimeZone("UTC"));

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
DateTime startDateTime = new DateTime(sdf.format(calendar.getTime()));
EventDateTime start = new EventDateTime().setDateTime(startDateTime);

event.setStart(start);

详细参考原代码: https://developers.google.com/google-apps/calendar/create-events

问题可能与您的SimpleDateFormat有关,可以简化为:

calendar.set(year, monthOfYear, dayOfMonth);

calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
calendar.set(Calendar.MINUTE, minute);
calendar.setTimeZone(TimeZone.getTimeZone("UTC"));

DateTime startDateTime = new DateTime(calendar.getTime())
EventDateTime start = new EventDateTime().setDateTime(startDateTime);

event.setStart(start);

Calendar 公开底层 Date 并且 DateTime 有一个采用 Date 的构造函数,因此不需要解析它。