Google App Script Calendar API - createAllDayEvent()方法未按预期工作

时间:2011-07-06 09:28:49

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

我已经打开issue关于(我假设的)是Google App Scripts中的一个错误,但它看起来不像是受到监控,所以我想知道是否有人解决了我的问题。< / p>

总而言之,我正在运行一个脚本(通过谷歌电子表格),该脚本试图在我创建的Google日历中输入一个条目。

function testCalendarAllDayEvent(){
  var calendar = CalendarApp.getCalendarById("od4434jhedv936p65gcbl3bjg@group.calendar.google.com");
  var calTimezone = calendar.getTimeZone();
  var scriptTimezone = Session.getTimeZone();
  var calendarevent = calendar.createAllDayEvent("Test Event", new Date(2011,7,1));
  var summary = calendarevent.getStartTime();
}

所以上面的代码在2011年7月31日而不是7月1日添加了“测试事件”。如果我改成它 new Date (2011,7,2)它将它放在2011年8月1日。所以它似乎是30天了。 我查看时区的原因是为了确保它们是相同的。当我查看summary变量值时,它是Mon Aug 01 2011 01:00:00 GMT+0100 (IST)

我不想盲目地在所有日期添加30天,因为它会以泪水结束。有谁知道我在做什么是不正确的?我已将Google示例用作模板。

1 个答案:

答案 0 :(得分:0)

这里的问题是Date constructor采用从零开始的月份索引。所以

new Date(2011,7,1)创建2011年8月1日的日期。

,而

new Date(2011,6,1)创建了2011年7月1日的日期。