为什么每个全天活动都被表示为2天活动?

时间:2017-05-06 20:00:07

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

我正在使用脚本将Google日历中的事件下载到电子表格中。我有一个问题,即'全天活动'将在2天内进入,例如:2017年5月9日的全天活动下载到表格中为5/9 / 17-5 / 10/17。 这是我的代码:

// Loop through all calendar events found and write them out starting on calulated ROW 2 (i+2)
for (var i=0;i<events.length;i++) {
  var row=i+2;
  var myformula_placeholder = '';
  // Matching the "header=" entry above, this is the detailed row entry "details=", 
  // and must match the number of entries of the GetRange entry below
  // NOTE: I've had problems with the getVisibility for some older events not having a value, 
  // so I've had do add in some NULL text to make sure it does not error
  var details=[[
    events[i].getStartTime(), 
    events[i].getTitle(), 
    events[i].getAllDayStartDate(), 
    events[i].getAllDayEndDate(), 
    events[i].getLocation(), 
    events[i].getDescription(), 
    events[i].getId()
    ]];
  var range=sheet.getRange(row,1,1,7);
  range.setValues(details);
}

知道这里可能会发生什么吗?这是一个错误还是我的代码中有错误?我想一个解决方案可能是从每个AllDayEndDate数字减去1天,但想知道为什么这甚至首先发生。

1 个答案:

答案 0 :(得分:0)

根据documentation它的正常行为:

  

获取此全天日历活动结束的日期。 (如果是这样的话   不是一整天的事件,那么这个方法会抛出异常。)   返回日期将代表当天午夜的午夜   事件结束后在脚本的时区。要使用日历   换句话说,调用getEndTime()。