Google App Script Calendar API - createAllDayEvent() 方法未按预期工作
我打开了 问题(我认为)是 Google App Scripts 中的一个错误,但是它看起来不像受到监控,所以我想知道是否有人可以解决我的问题。
总之,我正在运行一个脚本(通过谷歌电子表格),它尝试将一个条目放入我创建的谷歌日历中。
function testCalendarAllDayEvent(){
var calendar = CalendarApp.getCalendarById("[email protected]");
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 日添加了“测试事件”。如果我把它改成 新日期 (2011,7,2)
它把它放在 2011 年 8 月 1 日。所以看起来已经过去了 30 天。 我查看时区的原因是为了确保它们是相同的。当我查看 summary
变量值时,它是 Mon Aug 01 2011 01:00:00 GMT+0100 (IST)
我不想盲目地添加 30 天所有的约会都会以泪水结束。有谁知道我所做的是否不正确?我使用了 Google 示例作为模板。
I've opened an issue about (what I assume) is a bug in Google App Scripts but it doesn't look like its being monitored so I wondering if anyone has a work around for my problem.
In summary I am running a script (via a google spreadsheet) which attempts to put an entry in a Google Calendar I created.
function testCalendarAllDayEvent(){
var calendar = CalendarApp.getCalendarById("[email protected]");
var calTimezone = calendar.getTimeZone();
var scriptTimezone = Session.getTimeZone();
var calendarevent = calendar.createAllDayEvent("Test Event", new Date(2011,7,1));
var summary = calendarevent.getStartTime();
}
So the above code adds the "Test Event" on the 31st July 2011 instead of the 1st July. If I change it tonew Date (2011,7,2)
it puts it in on the 1st August 2011. So it seems to be 30 days out.
The reason I look at the time zones it to ensure they are the same. When I look at the summary
variable value it is Mon Aug 01 2011 01:00:00 GMT+0100 (IST)
I don't want to blindly add 30 days to all dates as it will just end in tears. Does anyone know if what I am doing is incorrect? I've used Google examples as templates.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这里的问题是 日期构造函数 采用从零开始的月份索引。因此,
new Date(2011,7,1)
创建了 2011 年 8 月 1 日的日期。而
new Date(2011,6,1)
创建了 2011 年 7 月 1 日的日期。The issue here is that the Date constructor takes a zero-based month index. So
new Date(2011,7,1)
creates a Date of Aug 1 2011.whereas
new Date(2011,6,1)
creates a Date of July 1 2011.