如何在Google脚本中格式化日期

时间:2019-06-24 10:37:04

标签: google-apps-script

我正在尝试编写一个小的Google脚本,该脚本从Google表格的某些单元格中获取数据并将其粘贴到GMAIL中。 但是,在粘贴“日期值”时,它始终以以下方式显示:-

  • 2019年4月15日星期一00:00:00 GMT + 0530(IST)
  • 2019年4月26日星期五00:00:00 GMT + 0530(IST)

但是我需要以适当的方式显示日期

  • “ 2019年4月15日星期一”或
  • “周五(2019年4月26日)”

我经历了这些可能的选项,即Utilities.formatDate.Split,但是以某种方式我无法适当地编写这些代码。您能帮我解决这个问题吗?下面我已经详细提到了整个问题。

我的代码

function temp2() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var dataSheet = ss.getSheetByName('Sheet1');
  var templateSheet = ss.getSheetByName('Sheet2');
  var emailTemplate2 = templateSheet.getRange("G1").getValue();
  var rec = templateSheet.getRange("C1").getValue();
  var sub = templateSheet.getRange("D1").getValue();
  var date = templateSheet.getRange("E1").getValue();
//  Logger.log(rec);
  MailApp.sendEmail(rec, sub, emailTemplate2);

}

此处var date = templateSheet.getRange("E1").getValue();是选择日期值的代码部分。

如果您需要这方面的更多信息,请告诉我 问候, 阿罗克

1 个答案:

答案 0 :(得分:0)

要求:

在Google Apps脚本的单元格中格式化日期值。


解决方案:

将值传递给日期构造函数new Date(),然后使用Utilities.formatDate()进行格式化。

// pass date to date constructor
var date = new Date(templateSheet.getRange("E1").getValue());

// "Mon Apr 15 2019" example
var formattedDate = Utilities.formatDate(date, "GMT+0", 'E MMM dd yyyy');

// "Fri 04/26/2019" example
var formattedDate = Utilities.formatDate(date, "GMT+0", 'E MM/dd/yyyy');

注意:默认情况下,我已将其设置为时区“ GMT + 0”,您可以将其更改为所需的任何时区。


参考文献:

  1. new Date()(用于日期构造函数)。
  2. Utilities.formatDate()用于在Google Apps脚本中格式化日期。
  3. SimpleDateFormat用于日期格式字符串。