为什么Apps脚本Session.getScriptTimeZone()的时区偏移与项目属性相差一小时?

时间:2016-02-29 04:56:14

标签: google-apps-script timezone-offset

在Apps脚本中,项目文件具有自己的时区设置:

Project Properties time zone

在这种情况下,时区偏移量为负5.但是当我的代码记录脚本时区时,它会减去4!它关闭了一个小时。如何修复代码以获得正确的时区偏移?

以下是代码:

function getTimezoneOffset(){
  var testMonth = "March",
      testDayOfMnth = "26",
      testYr = "2016";

  var hour = "10:00";

  Logger.log("Script Time Zone: " + Session.getScriptTimeZone());

  var dateString = testMonth + " " + testDayOfMnth + ", " + testYr;
  Logger.log("dateString: " + dateString);

  var date = new Date(dateString);

  var scrptTimeZone = Session.getScriptTimeZone();
  Logger.log("Session.getScriptTimeZone(): " + Session.getScriptTimeZone());

  var scriptTimeZone = Utilities.formatDate(date, scrptTimeZone, 'Z');
  Logger.log("scriptTimeZone: " + scriptTimeZone);
};

日志打印

Log of print out

1 个答案:

答案 0 :(得分:1)

是的,这是由于DST(3月13日)。 试试这个:

var date1 = new Date("March 12, 2016 10:00");  // EST – Eastern Standard Time
Logger.log("dateString: " + date1);
// result: dateString: Sat Mar 12 2016 10:00:00 GMT-0500 (EST)


var date2 = new Date("March 13, 2016 10:00");  // EDT – Eastern Daylight Time
Logger.log("dateString: " + date2);
// result: dateString: Sun Mar 13 2016 10:00:00 GMT-0400 (EDT)