为什么不希望将时区偏移量添加到时间(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
的构造函数,因此不需要解析它。
在 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
的构造函数,因此不需要解析它。