Google 在错误的日期和时间创建了日历事件

Google Calendar event created at a wrong date and time

.createEvent() 无法正常工作

当我执行以下代码时,在错误的日期和时间创建了一个事件。我想在 2021/2/21 17:00 - 22:00 上创建一个活动,但该活动是在 2021/2/22 上创建的7:00 - 12:00.
这是我的 GAS 代码和我的 Google 日历的屏幕截图。

function pracCalendar() {
  const id = 'foo@gmail.com';
  const calendar = CalendarApp.getCalendarById(id);

  const title = 'Test Event';
  const startTime = new Date('2021/2/21 17:00');
  const endTime = new Date('2021/2/21 22:00');
  const options = {
    description: 'Test Description',
    location: 'Test Location',
    guests: 'bar@gmail.com',
    sendInvites: true
  }

  calendar.createEvent(title, startTime, endTime, options);
}


这是时区造成的吗?

我不确定这是否相关,但以防万一...我目前住在日本。我的 Google 日历的时区是 Asia/Tokyo

谁能告诉我如何解决这个问题?

可能的问题:

我认为问题与 Google Apps 脚本项目和您的日历之间的不同 时区有关。

要检查这一点,请将以下两行添加到您当前的脚本中:

  console.log(Session.getScriptTimeZone()) // script timezone
  console.log(CalendarApp.getTimeZone()) // calendar timezone

解决方案:

如果两个时区之间存在差异,请更新 Google Apps 脚本项目的时区。您需要打开 appsscript.json 文件并调整时区以与日历的时区完全匹配。

您可以在此处找到有关如何打开 appsscript.json 文件的说明:

取消隐藏后,它将在脚本编辑器中可见。例如,您需要将 Europe/Paris 更改为:

"timeZone": "Europe/Paris",

什么 CalendarApp.getTimeZone() returns(最有可能 Asia/Tokyo)并保存更改。

请注意:

除了 2 小时的差异之外,您的代码应该为 2 月 21 日 (2021/2/21) 创建一个事件,但结果事件(在您的屏幕截图中)是在 22 日创建的。小心这个。