如何在App脚本中复制now()电子表格功能

时间:2014-04-14 03:58:05

标签: javascript datetime google-apps-script timezone

我想记录App Script在电子表格中运行的时间。此时间将由电子表格中的其他公式使用,以计算从现在到应用程序脚本上次运行的时间。

电子表格中的公式使用NOW()函数,该函数返回自18/12/1899以来的十进制天数。此时期的时区取决于工作表的时区,请参阅18596933

我需要使用App Script将当前时间插入电子表格单元格,使用与NOW()相同的格式。我一直在尝试使用Javascript Date来执行此操作,但这些日期基于App时区,可能与电子表格的时区不同。

如何创建NOW()的App Script版本,它返回与NOW()相同的值,而不管电子表格或脚本时区差异?

1 个答案:

答案 0 :(得分:0)

我的解决方法不会像NOW()那样返回小数部分的天数。相反,它返回一个字符串,App Script似乎在包含NOW()的公式中正确处理。

function getSpreadsheetTime() {
  var spreadsheetTimeZone = SpreadsheetApp.getActive().getSpreadsheetTimeZone();
  var spreadsheetDateTime = Utilities.formatDate(new Date(), spreadsheetTimeZone, "dd/MM/yyyy' 'HH:mm:ss.S");

  return spreadsheetDateTime;
}

这是基于以下答案:Google Apps Script formatDate using user's time zone instead of GMT