【问题标题】:Google Calendar, Java : Set up google event colour and event date from timestamp谷歌日历,Java:从时间戳设置谷歌事件颜色和事件日期
【发布时间】:2015-08-07 15:53:46
【问题描述】:

我正在研究 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;
    }

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

【问题讨论】:

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


    【解决方案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 响应中的那个。您应该将 value 设为 colorId="1" ,其取值如下: “1”:{ “背景”:“#a4bdfc”, “前景”:“#1d1d1d” },

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

    【讨论】:

    • 第一个包含 REST api,好的,第二个我有 java,所以我可以使用它。日期和时间呢?
    猜你喜欢
    • 2015-11-05
    • 1970-01-01
    • 2013-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 2012-10-10
    相关资源
    最近更新 更多