Google API 中的 datetime 对象是什么,如何格式化它的字符串输出?

What is datetime object in Google API, and how to format its string output?

 "start": {
"date": date,
"dateTime": datetime,
"timeZone": string
}...

这来自 Google 日历 API 事件 class(?) 的资源表示。 dateTime 字段应该是一个 datetime 对象。我找不到关于此 class 或其任何功能的任何资源,也没有找到一种方法来轻松格式化其字符串输出,例如 Date object.

谢谢!

[编辑]从 How to convert date in RFC 3339 to the javascript date object(milliseconds since 1970) 看来 DateTime RFC 3339 字符串可以解析为 Date 对象,这应该可以解决问题。

Google Calendar resource documentation, the datetime is an RFC3339 格式的字符串中所述,例如

"1985-04-12T23:20:50.52Z"

事实上,Google Java 客户端库似乎有一个内置的 RFC3339 格式化程序,使这更容易。看到这个答案:How do I parse RFC 3339 datetimes with Java?

看起来您已经解决了这个问题,但我只想在这里分享我的解决方案,以防其他人发现它有用。

将 dateTime 添加到 Google 日历 API 似乎最容易实现,方法是操作 Date 对象直到它代表适当的 date/time 然后才调用 .toISOString()方法将其转换为 Google 日历 API

所需的格式

也供参考 here 是我认为有用的时区列表

let startDateTime = new Date();

let finishDateTime = new Date();
finishDateTime.setTime(finishDateTime.getTime() + (1*60*60*1000));

const event = {
    'summary': 'test event',
    'start': {
        'dateTime': startDateTime.toISOString(),
        'timeZone': 'Australia/Melbourne'
    },
    'end': {
        'dateTime': finishDateTime.toISOString(),
        'timeZone': 'Australia/Melbourne'
    }
};

const request = gapi.client.calendar.events.insert({
    'calendarId': 'primary',
    'resource': event
});

request.execute(function(event) {
    console.log('Event created: ' + event.htmlLink);
});