【问题标题】:how to change timezone in googlesheet?如何更改谷歌表格中的时区?
【发布时间】:2020-03-11 03:38:29
【问题描述】:

我复制了一个脚本用于: 当你访问一个url时,url中带有值: 我的 googlesheet 自动填充单元格中 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, "");
}

【问题讨论】:

  • 也许尝试获取 UTC 日期并将其转换为您选择的时区。 Convert date to another timezone in JavaScript
  • 当你说“我应该改变什么才能让时间在我的时区”。您的意思是更改Curr_Time 变量中的值、Curr_Date 变量中的值还是两者都更改?
  • 我的意思是填满单元格的时间不是我所在时区的时间。是+6

标签: google-apps-script google-sheets timezone


【解决方案1】:

有两种方法可以更改电子表格中的时区。第一个是通过用户界面,第二个是编程。

第一种方式 -> 从用户界面

转到文件 -> 电子表格设置,将打开一个弹出窗口,如下图所示:

如您所见,有一个选项可以将时区更改为您想要的。

第二种方式 -> 编程方式:

Spreadsheet Class 具有 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
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    相关资源
    最近更新 更多