我试图创建一个从谷歌电子表格谷歌日历事件:如何用当地时间创建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);
}
而且它与抗辩工作n夏令时。在Google日历2017年3月13日之后开始的活动在1小时后开始(7:55 pm而不是下午6:55)。
我已经试过:
- 寻找将接受本地时间谷歌日历法(又称派6:55 PM和谷歌日历API将其转换为UTC)
- 寻找本地JS方法将当地时间转换为UTC。
无法找到任一解决方案。有没有我没有找到的或者是不同的/更好的方法来解决这个问题?
我的问题是夏令时没有时区(所有的事件都在同一个时区)...我尝试在Google Calendar API中指定start/end.timeZone,但它没有任何作用。 – Nathan