应用脚本 - 格式化时间戳的当前日期

时间:2018-04-06 16:00:19

标签: google-apps-script

我希望将当前日期格式化为" yyyy / MM / dd HH:mm"。 formatDate允许我格式化日期,但我需要根据以下内容指定时区:

Utilities.formatDate(new Date(), "GMT", "yyyy/MM/dd HH:mm")

这几乎是我想要的,但我希望结果是BST或GMT,视日历而定。在没有进一步操纵文本日期的情况下,我应指定哪个时区来获得答案? (我确实有一个笨拙的解决方法)。这个问题引发了我的一个定时批处理过程,该过程在我们最近的BST时钟更改的午夜运行,其中时间戳应用于前一天的23:00。

1 个答案:

答案 0 :(得分:3)

在脚本属性中,确保选择了正确的时区。然后,在您的脚本中,使用Session.getScriptTimeZone()

,而不是使用“GMT”
function test() {
  var date1 = new Date("March 10, 2018 10:00");
  var date2 = new Date("March 11, 2018 10:00");
  Logger.log(date1); // Sat Mar 10 10:00:00 GMT-05:00 2018
  Logger.log(Utilities.formatDate(date1, Session.getScriptTimeZone(), "yyyy/MM/dd HH:mm")); // 2018/03/10 10:00
  Logger.log(date2); // Sun Mar 11 10:00:00 GMT-04:00 2018
  Logger.log(Utilities.formatDate(date2, Session.getScriptTimeZone(), "yyyy/MM/dd HH:mm")); // 2018/03/11 10:00
} 

在脚本编辑器中,转到文件>项目属性并设置您的时区。 (我用东方时间代替我。)

enter image description here