Date 谷歌应用程序脚本中的时间/日期错误,手动运行完美,但在定时触发器上中断

Date 谷歌应用程序脚本中的时间/日期错误,手动运行完美,但在定时触发器上中断,date,google-apps-script,time,triggers,timezone,Date,Google Apps Script,Time,Triggers,Timezone,我有一个GoogleApps脚本,可以通过API下载外部数据,并将其放入其中一个工作表中。 脚本应该基于昨天的日期获取数据(API文档中的正确日期格式:yyy-MM-dd) 当我手动运行脚本时,一切都很好,但每次它在定时触发器(7-8 GMT+2)上运行时,都会得到错误的数据,不是昨天的数据,而是两天前的数据 我完全不明白为什么会这样。有人能解释一下吗?代码如下: //Prepare yesterday's date in a correct format, with correct Tim

我有一个GoogleApps脚本,可以通过API下载外部数据,并将其放入其中一个工作表中。 脚本应该基于昨天的日期获取数据(API文档中的正确日期格式:yyy-MM-dd)

当我手动运行脚本时,一切都很好,但每次它在定时触发器(7-8 GMT+2)上运行时,都会得到错误的数据,不是昨天的数据,而是两天前的数据

我完全不明白为什么会这样。有人能解释一下吗?代码如下:

  //Prepare yesterday's date in a correct format, with correct Time Zone for the API request
  var dateYesterday = Utilities.formatDate(new Date(new Date().getFullYear(),new Date().getMonth(),new Date().getDate()-1, new Date().getHours(), new Date().getMinutes()), "CET", "yyyy-MM-dd");

  //Push API request
  var optionsReport = {};
  optionsReport.headers = {"Authorization": "Basic " + Utilities.base64Encode(tokenID + ":" + "api_token")};
  var response = UrlFetchApp.fetch("https://api.domain.com/api/v2/details?id=" + id + "&since=" + dateYesterday + "&until=" + dateYesterday + "&user_agent=" + userAgent, optionsReport);
当我以不需要考虑小时和分钟的方式编写代码时,它会在控制台中将当前时间错误显示10小时,例如:

var dateYesterday = Utilities.formatDate(new Date(new Date().getFullYear(),new Date().getMonth(),new Date().getDate()-1), "CET", "yyyy-MM-dd HH:mm Z");
返回: 2021-04-02 06:00+0200

而不是: 2021-04-02 16:00+0200


我的Google帐户设置为GMT+2。

如果使用
Session.getScriptTimeZone()
而不是
“CET”
,会发生什么?