как изменить часовой пояс в googlesheet? - PullRequest
1 голос
/ 20 февраля 2020

Я скопировал скрипт для: при посещении URL со значениями в URL: моя таблица googles автоматически заполняется значениями, скрытыми в URL в ячейке и в одной строке: дата и время. Все работает, за исключением того, что время не совпадает с моим часовым поясом.

Что я должен изменить, чтобы иметь время в своем часовом поясе? Спасибо

function doGet(e) { 
  Logger.log( JSON.stringify(e) );  // view parameters
  var result = 'Ok'; // assume success
  if (e.parameter == 'undefined') {
    result = 'No Parameters';
  }
  else {
    var sheet_id = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';       // Spreadsheet ID
    var sheet = SpreadsheetApp.openById(sheet_id).getActiveSheet();     // get Active sheet
    var newRow = sheet.getLastRow() + 1;                        
    var rowData = [];
    var Curr_Date = new Date(); 
    rowData[0] = Curr_Date;                                             // Date in column A
    var Curr_Time = Utilities.formatDate(Curr_Date, "europe/paris", 'HH:mm:ss');
    rowData[1] = Curr_Time;                                             // Time in column B
    for (var param in e.parameter) {
      Logger.log('In for loop, param=' + param);
      var value = stripQuotes(e.parameter[param]);
      Logger.log(param + ':' + e.parameter[param]);
      switch (param) {
        case 'LDR': //Parameter
          rowData[2] = value; //Value in column C
          break;
        case 'Button': //Parameter
          rowData[3] = value; //Value in column D
          break;  
        default:
          result = "unsupported parameter";
      }
    }
    Logger.log(JSON.stringify(rowData));
    // Write new row below
    var newRange = sheet.getRange(newRow, 1, 1, rowData.length);
    newRange.setValues([rowData]);
  }
  // Return result of operation
  return ContentService.createTextOutput(result);
}
/**
* Remove leading and trailing single or double quotes
*/
function stripQuotes(value) {
  return value.replace(/^["']|['"]$/g, "");
}

1 Ответ

1 голос
/ 24 февраля 2020

Существует два способа изменения часового пояса в вашей электронной таблице. Первый - через пользовательский интерфейс, а второй - программно.

Первый способ -> Из интерфейса пользователя

Go до Файл -> Настройки электронной таблицы , откроется всплывающее окно, как показано на следующем рисунке:

enter image description here

Как вы можете видеть, есть один вариант изменить часовой пояс на тот, который вы хотите.

Второй способ -> Программно:

Класс электронной таблицы имеет метод setSpreadsheetTimeZone(timezone), который изменит часовой пояс в электронной таблице, но теперь программно. Вот небольшой пример того, как его использовать:

function dateFormat() {
  var ss = SpreadsheetApp.openById("your-id");
  // Get the current Spreadsheet's time zone 
  var currentTimeZone = ss.getSpreadsheetTimeZone();
  Logger.log(currentTimeZone); // Check the current time zone
  // Set the new Spreadsheet's time zone
  var updatedTimeZone = ss.setSpreadsheetTimeZone("Europe/Paris");
  Logger.log(updatedTimeZone); // Check the updated time zone
}
...