Google Apps日历createEvent()创建日历条目的时间太晚了一个小时

时间:2017-11-18 19:13:42

标签: google-apps-script timezone-offset

我正在尝试根据此示例实施座位预订应用:http://collaborative-tools-project.blogspot.ch/search?q=simple+booking

我让它工作,但仍有时区问题。下面的代码采用给定日期,并定义事件的开始和结束日期/时间的小时和分钟。 它有效,但是每个预订都在日历中太晚了一个小时,我不明白为什么。 我住在GMT + 1时区(瑞士)。

var start_date_obj = new Date (date);
  start_date_obj.setHours( start_hours,start_minutes,0,0 );
  var end_date_obj = new Date( date );
  end_date_obj.setHours( end_hours, end_minutes,0,0 );

  var title = "Buchung " + tutor ;

  var calendar = CalendarApp.getCalendarById('ondemandmanagement.net_1rc3sl8cfbfr1pp3kekvtb53s4@group.calendar.google.com');
  Logger.log("Start: " + start_date_obj + " End: " + end_date_obj );
  var event = calendar.createEvent(title +": "+email, start_date_obj, end_date_obj, {location: "Galmiz"});

API参考说:

  

createEvent(title,startTime,endTime)

     

创建一个新事件。如果未指定时区,则时间值为   在剧本的时区范围内解释,可能是   不同于日历的时区。

当我检查日志时,我看到start_date_obj和end_date_obj处于正确的时区(GMT + 1)。 但是,createEvent()调用似乎使用PDT时区,日历显示GMT + 2或GMT + 1 DST(一小时太晚)的事件。

10:00 GMT + 1 预订活动的代码片段日志文件摘录:

Logger.log([开始时间:2018年6月9日星期六 10:00:00 GMT + 0100(BST)结束:2018年6月9日星期六 10:20:00 GMT + 0100( BST),[]])[0秒] [17-11-18 20:01:58:235 CET] Calendar.createEvent([Buchung Scheibe 3:heinz.ruffieux@ondemandmanagement.net,星期六09月6日 02:00:00 PDT 2018,星期六09年6月 02:20:00 PDT 2018,{location = Galmiz}])[0.333秒]

而02:00 PDT实际上转换为格林威治标准时间11点11分(太晚一小时)。但我不明白它的来源。 BST是问题吗?它来自哪里?

任何人都可以帮助我吗?

非常感谢

亨氏

0 个答案:

没有答案