Google Apps 脚本:连接日期和时间
Google Apps Script: Concatenating date and time
[更新]:要使用 AppsScript 创建 google 日历事件,我们可以使用 createEvent(eventName, startTime, endTime)
的简单方法。我已经处理过这个并且没有任何问题。但我使用的唯一日期格式是 google 工作表中的长 date/time 格式(例如 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}`);
}
}
我认为这个问题与您之前的问题有关?如果是这样,请查看我使用的示例数据和下面的脚本:
示例数据:
脚本:
// 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);
});
输出:
输出已根据我的时区进行了调整,因此它没有正确反映示例数据中的日期,但它已签出。
[更新]:要使用 AppsScript 创建 google 日历事件,我们可以使用 createEvent(eventName, startTime, endTime)
的简单方法。我已经处理过这个并且没有任何问题。但我使用的唯一日期格式是 google 工作表中的长 date/time 格式(例如 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}`);
}
}
我认为这个问题与您之前的问题有关?如果是这样,请查看我使用的示例数据和下面的脚本:
示例数据:
脚本:
// 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);
});
输出:
输出已根据我的时区进行了调整,因此它没有正确反映示例数据中的日期,但它已签出。