calendarApp createEvent在错误的一天添加了事件

时间:2013-05-07 03:43:13

标签: google-apps-script google-calendar-api google-apps

这是我的代码:

function calEvent(){
   var arrivalDate = "06/10/2013";
   var departureDate = "06/18/2013";
   var start = new Date(arrivalDate);
   var end = new Date(departureDate);

   var cal = CalendarApp.getCalendarById('id487g3esn088a00omqa99ugv0@group.calendar.google.com');
   cal.createEvent('Apollo 11 Landing',start,end);

}

当我运行它时,它将在正确的日历中创建事件,但它将仅从6月10日到6月17日。我需要该活动涵盖6月10日至6月18日。

我已检查时区设置,电子表格,脚本和日历都在同一时区(山地时间GMT-7)

如何在正确的日期设置这个看似简单的代码?我已经尝试了几种日期格式(utilities.formatDate),但似乎无法获得正确的格式。

提前致谢。

1 个答案:

答案 0 :(得分:1)

How to use timeZone of calendar to set timeZone for date object

我在几周前提出了上述问题,并提出了一个有效的解决方案。不确定它是否是最好的,但你可以查看它是否有帮助。在为我的问题制定解决方案时,我注意到了几件事。该脚本肯定使用脚本时区来创建日期对象。但是当它发布到日历时,它会将执行者默认日历时区的日期调整为您正在编写的日历的时区。因此,如果用户的默认日历时区与正在写入的日历不同,您将获得各种疯狂​​的时间

所以上面问题中列出的函数gasTimezoneOffset()就是我的解决方案。

希望这有帮助。