为什么时区偏移量不合时宜地添加到时间(03:00到08:00)

时间:2016-01-21 20:18:28

标签: android datetime google-calendar-api simpledateformat

在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

1 个答案:

答案 0 :(得分:1)

问题可能与您的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公开了基础DateDateTime有一个带Date的构造函数,因此不需要解析它。