如何使用脚本编辑器在Google电子表格中获取当前时间?

时间:2012-04-16 21:33:35

标签: google-apps-script google-sheets

可以选择编写脚本并将其绑定到触发器。问题是,如何在脚本体中获取当前时间?

function myFunction() {

  var currentTime = // <<???

}

5 个答案:

答案 0 :(得分:44)

使用JavaScript Date()对象。有很多方法可以从对象中获取时间,日期,时间戳等。 (Reference

function myFunction() {
  var d = new Date();
  var timeStamp = d.getTime();  // Number of ms since Jan 1, 1970

  // OR:

  var currentTime = d.toLocaleTimeString(); // "12:35 PM", for instance
}

答案 1 :(得分:6)

使用javascript提供的Date对象。这对Google的脚本环境来说并不独特或特殊。

答案 2 :(得分:2)

我在Google文档中考虑使用时区:

MediaPlayerHelper.Instance.CurrentPlayer = newCurrentPlayer;

my script for Google docs

答案 3 :(得分:1)

Date对象用于处理日期和时间。

使用new Date()创建日期对象。

var date= new Date();

 function myFunction() {
        var currentTime = new Date();
        Logger.log(currentTime);
    }

答案 4 :(得分:1)

任何人说获取Google表格中的当前时间并不是Google脚本环境所独有的,显然从未使用过Google Apps脚本。

话虽如此,您想返回当前时间吗?脚本用户的时区?脚本所有者的时区?

脚本时区由脚本所有者在脚本编辑器中设置。但是脚本的不同授权用户可以从Google表格的File/Spreadsheet settings菜单中为其使用的电子表格设置时区。

我想你想要第一个选择。您可以使用内置函数来获取电子表格时区,然后使用Utilities类来设置日期格式。

var timezone = SpreadsheetApp.getActive().getSpreadsheetTimeZone();

var date = Utilities.formatDate(new Date(), SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "EEE, d MMM yyyy HH:mm")

或者,使用Javascript的date方法从UTC时间获取时区偏移量,设置时区格式并将其传递到Utilities.formatDate()

但这需要进行一些细微调整。 getTimezoneOffset()返回的偏移量与我们通常对时区的看法相矛盾。如果偏移量为正,则本地时区位于UTC后面,例如美国时区。如果偏移量为负,则本地时区位于UTC之前,例如亚洲/曼谷,澳大利亚东部标准时间等。

const now = new Date();
// getTimezoneOffset returns the offset in minutes, so we have to divide it by 60 to get the hour offset.
const offset = now.getTimezoneOffset() / 60
// Change the sign of the offset and format it
const timeZone = "GMT+" + offset * (-1) 
Logger.log(Utilities.formatDate(now, timeZone, 'EEE, d MMM yyyy HH:mm');