我是一名初学者,正在为谷歌工作表编写代码,以根据谷歌工作表上输入的数据在谷歌日历上创建事件。我的开始日期和结束日期按以下格式编写:yyyy", "m", "d", "h", "m", "s 例如:在单元格 Z2 上写为:2023, 2, 1, 11, 0, 0。我的 Google 日历上的时区设置为 GMT+07:00。代码已在正确的日期成功创建事件,但时间始终错误,例如在单元格 Z2 上,脚本已于 2023 年 2 月 2 日成功创建事件,但事件时间记录不正确 (00:00 - 01:00)应该是(11:00 - 12:00)。任何人都可以帮助我确定问题是否出在谷歌表上的日期时间格式中,或者是否出在代码本身上?如有任何帮助,我们将不胜感激。
这是我尝试过的代码:
function createEvent() {
var spreadsheet = SpreadsheetApp.openById('SpreadsheetId');
var sheet = spreadsheet.getSheetByName('SheetName');
var data = sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn()).getValues();
var calendar = CalendarApp.getCalendarById('Calendar ID');
for (var i = 0; i < data.length; i++) {
var row = data[i];
var title = row[31]; // Column AF
var description = row[3]; // Column D
var startDate = new Date(row[25]); // Column Z
var endDate = new Date(row[26]); // Column AA
var event = calendar.createEvent(title, startDate, endDate, { description: description });
Logger.log('Event ID: ' + event.getId());
}
}
停止添加时区,默认时区是在日历本身中配置的。 Google 知道日历配置在哪个时区。
因此,如果您在早上 10 点插入它,它将在该日历时区的早上 10 点插入。
通过添加时区,您往往会混淆事情,并且结果非常难以预测。