日期选择器 return 值的 getEventsForDay() 格式问题

getEventsForDay() formatting issues with datepicker return value

我正在尝试使用日历 API 根据日期选择器输出提取一些事件。我的 AppScript 面临的问题是正确格式化我从日期选择器获得的值,该值将用作 getEventsForDay() 函数的输入。

function testing(){
 var z = CalendarApp.getCalendarsByName("X")[0];
 var date = new Date('2016-10-12');
 var dateformatted =Utilities.formatDate(date), "GMT", "yyyy-MM-dd hh:mm:ss a");
 var a = z.getEventsForDay(dateformatted, {search: 'OOO'});

a 在此场景中的输出是一个空对象 - 这是预料之中的,因为此格式设置根本不起作用。 (我已经阅读了 1000 篇应该有效的帖子)。

对于上下文,我有一个今天日期的工作示例,它工作正常,因为输入是一个新的 Date()。给你:

 var datetoday = new Date();  
 var b = z.getEventsForDay(datetoday, {search: 'OOO'});

关于我在这里遗漏的任何想法?

提前致谢。

由于 new Date() return 是 UTC 而不是本地时区的 Date 对象,您可能会查询错误的日期,因此如果另一天没有任何事件,则为空对象。

您可以将日期转换为当前时区,例如

date.setTime(date.getTime() + date.getTimezoneOffset()*60*1000)

这应该 return 当地时区的日期,您将获得正确日期的事件。

希望对您有所帮助

进行了一些更改,现在可以在 App 脚本上运行:

 var t = "2016-10-01";
 var q = t.replace(/-/g,"/");
 var a = new Date(q);
 a.setTime(a.getTime() + a.getTimezoneOffset()*60*1000)
 var w = z.getEventsForDay(a, {search: 'OOO'}); 
 Logger.log(a);
 Logger.log(w);