Google日历,Java:从时间戳设置Google事件颜色和事件日期

时间:2015-08-07 15:53:47

标签: java date google-api timestamp google-calendar-api

我正在使用Google日历,我想为事件设置颜色,并从我拥有的java时间戳对象设置事件时间。目前我找不到任何可能的颜色和颜色字符串的格式。

以下是我的静态日期和时间代码,没有颜色。我试图使用时间戳,但谷歌有一些奇怪的DateTime对象。此外,我无法找到任何颜色的默认格式。 包含日期和时间设置的基本样本是静态字符串。这太可怕了,什么样的开发人员使用硬编码的日期和时间值作为示例来显示他们的日期时间api是多少。我希望将来我不必处理这种混乱的API。抱歉咆哮,这是代码:

  @Override
    public Event setUpEventToSave(GroupNotes groupNotes, Person person) {
        Event event = new Event();
        event.setSummary(groupNotes.getMnotetag());
        event.setDescription(groupNotes.getMnotetext());

        Event.Creator creator = new Event.Creator();
        creator.setDisplayName(person.getFirstName());
        creator.setEmail(person.getUsername());
        event.setCreator(creator);
        event.setDescription(groupNotes.getMnotetext());
// I have color in #colorid in DB, but that didn't work, which is standard
      //  event.setColorId(groupNotes.getMnotecolor());

        event.setSummary(groupNotes.getMnotetext());
        event.setLocation("Hamburg");

// How can i pass java timestamp below with system time zone?
        DateTime startDateTime = new DateTime("2015-08-07T09:00:00-07:00");
        EventDateTime start = new EventDateTime()
                .setDateTime(startDateTime)
                .setTimeZone("America/Los_Angeles");
        event.setStart(start);

        DateTime endDateTime = new DateTime("2015-08-07T17:00:00-07:00");
        EventDateTime end = new EventDateTime()
                .setDateTime(endDateTime)
                .setTimeZone("America/Los_Angeles");
        event.setEnd(end);


   /*     EventAttendee[] attendees = new EventAttendee[] {
                new EventAttendee().setEmail("lpage@example.com"),
                new EventAttendee().setEmail("sbrin@example.com"),
        };
        event.setAttendees(Arrays.asList(attendees));
*/

        EventReminder[] reminderOverrides = new EventReminder[] {
                new EventReminder().setMethod("email").setMinutes(24 * 60),
                new EventReminder().setMethod("popup").setMinutes(10),
        };
        Event.Reminders reminders = new Event.Reminders()
                .setUseDefault(false)
                .setOverrides(Arrays.asList(reminderOverrides));
        event.setReminders(reminders);


        return event;
    }

任何帮助都会很好。非常感谢。 : - )

1 个答案:

答案 0 :(得分:1)

您可以检查colors端点中的所有可能颜色。以下是样本回复:

"event": {
  "1": {
  "background": "#a4bdfc",
   "foreground": "#1d1d1d"
  },
 "2": {
 "background": "#7ae7bf",
 "foreground": "#1d1d1d"
},
"3": {
 "background": "#dbadff",
 "foreground": "#1d1d1d"
},
"4": {
 "background": "#ff887c",
 "foreground": "#1d1d1d"
},

使用event.insert插入事件时,您可以指定colorId。 ColorId应该是colors.get响应中的那个。你应该给colored =" 1"取值如下: " 1":{       "背景":"#a4bdfc",        "前景":"#1d1d1d"       },

如果您仍有问题,请告诉我。另外,请检查calendarList.update