【发布时间】:2016-08-15 07:28:09
【问题描述】:
我正在尝试从 Google 电子表格创建 Google 日历活动:
电子表格示例:
(细节和日期不规则,所以简单的重复事件并不能安静地消除它)
代码:
function walk_sheet(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("CalendarGenerator");
for (var i = 2; i <= 39; i++) {
var date = sheet.getRange(i, 2).getValue();
var start = parseTime(sheet.getRange(i, 3).getDisplayValues().toString() ) ;
var end = parseTime(sheet.getRange(i, 4).getDisplayValues().toString() ) ;
var summary= sheet.getRange(i, 6).getValue();
var disc = sheet.getRange(i, 7).getValue();
add_bsf_event(date, start, end, summary, disc);
}
}
function add_bsf_event(dateIn, start, end, summary, disc){
start_date= new Date(dateIn.getYear(), dateIn.getMonth(), dateIn.getDate(), start.getHours(), start.getMinutes(),0,0);
end_date = new Date(dateIn.getYear(), dateIn.getMonth(), dateIn.getDate(), end.getHours(), end.getMinutes(),0,0);
...
CalendarApp.getCalendarById(calendarId).createEvent(summary, start_date, end_date);
}
它在夏令时除外。从 2017 年 3 月 13 日之后开始,Google 日历中的活动比请求晚 1 小时(下午 7:55 而不是下午 6:55)。
我试过了:
- 寻找可以接受本地时间的 Google 日历方法(也就是发送下午 6:55 和 Google 日历 API 将其转换为 UTC)
- 正在寻找将本地时间转换为 UTC 的原生 JS 方法。
没有找到任何解决方案。有没有我没有找到的或者有不同/更好的方法来解决这个问题?
【问题讨论】:
标签: javascript google-api google-sheets google-calendar-api dst