Неправильный часовой пояс в скрипте Google Apps - PullRequest
1 голос
/ 05 мая 2020

У меня есть скрипт Google Apps, который извлекает время из заданной строки в электронной таблице и затем расшифровывает его. Однако часовой пояс в процессе полностью сбивается.

Соответствующий код (функциональные биты удалены, потому что я не думаю, что они актуальны):

var timezone = "GMT+" + new Date().getTimezoneOffset()/60;
function dysfunction(row) {
  this.time = new Date (sheet.getRange(row,6).getValue());
  this.time.setFullYear(2020);
  this.timeString = Utilities.formatDate(this.time, timezone, "hh:mm a");
  Logger.log(timezone);
  Logger.log(this.time);
  Logger.log(this.timeString);
}

Stackdriver Журнал выполнения:

May 4, 2020, 9:43:52 PM Info    GMT+6
May 4, 2020, 9:43:52 PM Info    Wed Dec 30 14:00:00 GMT-07:00 2020
May 4, 2020, 9:43:52 PM Info    03:00 AM

Мой правильный часовой пояс на самом деле GMT-07: 00, но по какой-то причине скрипт определяет мой часовой пояс как GMT + 6. Я установил правильный часовой пояс в свойствах проекта и даже объявил часовой пояс как «Америка / Эдмонтон» в манифесте.

Где мне go рядом выяснить, почему эта штука не заинтересована в правильном чтении часового пояса?

1 Ответ

1 голос
/ 06 мая 2020

Предлагаю следующую модификацию.

От:

Utilities.formatDate(this.time, timezone, "hh:mm a")

Кому:

Utilities.formatDate(this.time, SpreadsheetApp.getActiveSpreadsheet().getSpreadsheetTimeZone(), "hh:mm a")

Ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...