【问题标题】:How to format Date in Google Script如何在 Google Script 中格式化日期
【发布时间】:2019-06-24 19:11:57
【问题描述】:

我正在尝试编写一个小的 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(); 是选择日期值的代码部分。

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

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    要求:

    在 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 用于日期格式字符串。

    【讨论】:

    • getValue() 返回日期对象。你不需要构造函数。
    • 您好,如果我使用以下脚本,则会出现“找不到方法 formatDate(string,string,string)”的错误。 Utilities.formatDate(templateSheet.getRange("E3").getValue(),"GMT+0", 'E MMM dd yyyy')
    • @TheMaster 很确定您仍然需要构造函数,请参阅上面的错误...
    • @AlokNagar 在格式化之前尝试将日期传递给new Date() 构造函数,就像我的回答一样。
    • 感谢您的快速帮助@ross,我们可以使用任何chop 选项在Google Script 中获得所需的值。例如。来自“2019 年 4 月 15 日星期一 00:00:00 GMT+0530 (IST)”,如果我可以提取前 15 个文本,即“2019 年 4 月 15 日星期一”?我不知道这是否可能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-30
    • 1970-01-01
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 2011-01-31
    • 2014-04-18
    相关资源
    最近更新 更多