Скрипт Google Apps возвращает неправильный часовой пояс
Столкнулся с проблемой при получении данных к гугл таблицы, а именно то что происходит откат на 3 часа назад. В настройках скрипта и таблицы стоит МСК (GMT+3) но скрипт выводит нулевой (GMT)
var data = getDataTest();
if (!data) {
data = '';
}
return ContentService.createTextOutput(JSON.stringify({ 'result': data })).setMimeType(ContentService.MimeType.JSON);
function getDataTest() {
var sheet = SpreadsheetApp.openById("...");
var shetname = sheet.getSheetByName("...");
var result = [],
range = 'A:B',
values = shetname.getRange(range).getValues(),
last_row = parseInt(shetname.getLastRow());
for (var i = 1; i < last_row; i++) {
result.push(values[i]);
}
return result;
}
Вот сама таблица: enter image description here
И вот то как ее выводит скрипт: enter image description here
Ответы (1 шт):
Вам необходимо настроить манифест проекта скрипта, т.к. он как раз указывает на нужный часовой пояс.
Часовой пояс Таблицы
SpreadsheetApp.getActive().getSpreadsheetTimeZone();
Часовой пояс проекта
Session.getScriptTimeZone();
Вы можете сравнивать результаты этих методов для контроля за часовыми поясами.
Чтобы автоматически изменить часовой пояс проекта, необходимо использовать Google Script API projects/updateContent.
Подогнать часовой пояс Таблицы к часовому поясу проекта
SpreadsheetApp.getActive().setSpreadsheetTimeZone(Session.getScriptTimeZone());
