[更新]:要使用 AppsScript 創建一個谷歌日歷事件,我們可以使用簡單的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}`);
}
}
uj5u.com熱心網友回復:
我認為這個問題與您之前的問題有關?如果是這種情況,請查看我使用的示例資料和下面的腳本:
樣本資料:

腳本:
// 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);
});
輸出:

輸出已調整為我的時區,因此它不能正確反映樣本資料中的日期,但它會檢查出來。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/410900.html
標籤:
