[更新]:要使用 AppsScript 创建 Google 日历事件,我们可以使用以下简单方法createEvent(eventName, startTime, endTime)
。我已经使用过这个并且没有任何问题。但我使用的唯一日期格式是谷歌表格中的长日期/时间格式(例如 3/9/2021 13:30:00)。
使用下面的代码我想将日期和时间列合并到一个 Date 对象中以输入到 createEvent() 方法中,但得到和错误Invalid Date
.
function calendarSyncNew() {
var dataSheet = mySheet;
var calendarId = calendarId;
var eventCal = CalendarApp.getCalendarById(calendarId);
var eventArray = dataSheet.getRange('A2:E').getValues();
for (x = 0; x < eventArray.length; x++) {
var event = eventArray[x];
var eventName = event[3];
var eventDate = event[0];
var timeZone = event[4];
var startTime = new Date(`${eventDate} ${event[1]} ${timeZone}`);
var endTime = new Date(`${eventDate} ${event[2]} ${timeZone}`);
eventCal.createEvent(eventName, startTime, endTime);
Logger.log(`startTime is: ${startTime}`);
Logger.log(`endTime is: ${endTime}`);
}
}
我认为这个问题与您之前的问题有关?如果是这种情况,请查看我使用的示例数据和下面的脚本:
样本数据:
Script:
// use getDisplayValues for getting the string equivalent of the data instead
// filter out rows without values in column A
var eventArray = dataSheet.getRange('A2:I')
.getDisplayValues()
.filter(x => x[0] != '');
eventArray.forEach(event => {
var eventName = event[4];
var startTime = new Date(`${event[0]} ${event[1]} ${event[3]}`);
var endTime = new Date(`${event[0]} ${event[2]} ${event[3]}`);
eventCal.createEvent(eventName, startTime, endTime);
});
Output:
输出已根据我的时区进行调整,因此它无法正确反映示例数据中的日期,但它会检查出来。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)