javascript - 合并后 GAS 脚本更改工作表中的日期和时间

标签 javascript google-apps-script google-sheets

我在几个工作表中有一个包含日期的列,当我出于某种原因将此工作表中的数据合并到另一个电子表格时,每个日期都会增加 10 小时。

function runTransferToMasterSheet() {
  var folder = DriveApp.getFolderById("folderID");
  var contents = folder.getFiles();
  var file; 
  var data;
  
  var sheetMaster = SpreadsheetApp.openByUrl('sheetURL').getSheets()[0];
  
  var range = sheetMaster.getRange("A2:G120000");
  range.clear();
  while(contents.hasNext()){
    file = contents.next();    
    var sheet = SpreadsheetApp.openById(file.getId()).getSheets()[0];
    
    // delete row with columns names
    sheet.deleteRow(1);

    var data = sheet.getDataRange().getValues();
    
    setDataToMaster(sheetMaster, sheet, data);
  }
  
}

function setDataToMaster(sheetMaster, sheet, data) {
  var sheetMaster = sheetMaster; 
  var sheet = sheet;
  var startRow = 1; 
  var data = data;
  
  if (sheetMaster.getDataRange().getValue() == null) {
    sheetMaster.getRange(2, 1, data.length, 7).setValues(data);
  } else {
    sheetMaster.getRange((sheetMaster.getLastRow() + 1), 1, data.length, 7).setValues(data);
  }
}

将合并的工作表中的日期 6/13/2018 11:10:00

最终表格中的日期 6/13/2018 21:10:00

最佳答案

由于某些原因,我合并的工作表(我使用一些 api 得到它们)有错误的时区,所以在合并之前决定使用:

mySpreadSheet.setSpreadsheetTimeZone(Session.getScriptTimeZone());

关于javascript - 合并后 GAS 脚本更改工作表中的日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50833188/

相关文章:

javascript - 如何在上传图片后更改 DIV 的背景?

javascript - JS 正则表达式仅适用于第一个字母,但如果单词只有两个字母,则保持 AND 数字不变

google-apps-script - 如何限制用户访问社区连接器的脚本?

javascript - 用数字单位替换字符串的一部分

python - 使用pandas在谷歌电子表格中添加新行和现有行

javascript - 合并两个数组并返回不在第一个数组中的项

javascript - 如何删除 Google map api3 中的单个标记

google-apps-script - 使用 Apps 脚本在 Google 共享驱动器(团队驱动器)文件夹之间移动文件

google-apps-script - 仅修改主题并发送草稿

if-statement - 将值填充到相邻单元格的函数