脚本日期格式

时间:2019-07-19 05:32:36

标签: date google-apps-script google-sheets formatting

我正在尝试从单元格A1中的28-Jun-19,单元格A2中的17/01/2019中读取日期,并通过脚本将其写入另一张工作表。我需要的格式是“ mm / dd / yy”,但我的输出是6/28/2019, 12:00:00 AM

  A1           A2
------       --------
28-Jun-19   17/01/2019

我没有在以下代码中包含循环:-

var A_Date = targetSheet1.getRange(lastRow -i, 2).getValues().toLocaleString();

sourceSheetalpha.getRange(lastRow2 + 1, 13).setValue(A_Date);

我期望输出28/06/2019
我期望输出17/01/2019

1 个答案:

答案 0 :(得分:2)

  • 您要从单元格中检索值(日期)并将其放入单元格中。
  • 该值类似于17/01/2019
    • my output is "6/28/2019, 12:00:00 AM".开始,我认为17/01/2019是日期对象。

如果我的理解正确,那么这个答案如何?请认为这只是几个答案之一。

在以下示例脚本中,假设17/01/2019放在单元格“ A1”中。并将检索到的值放入单元格“ B1”和“ C1”。

模式1:

在此模式下,使用Utilities.formatDate()

示例脚本:

var sheet = SpreadsheetApp.getActiveSheet();
var value = sheet.getRange("A1").getValue();

sheet.getRange("B1").setValue(Utilities.formatDate(value, Session.getScriptTimeZone(), "dd/MM/yyyy"));
  • 检索到的值放在单元格“ B1”中。

模式2:

在此模式下,使用setNumberFormat()

示例脚本:

var sheet = SpreadsheetApp.getActiveSheet();
var value = sheet.getRange("A1").getValue();

sheet.getRange("C1").setNumberFormat("dd/mm/yyyy").setValue(value);
  • 检索到的值放在单元格“ C1”中。

参考文献:

编辑:

从共享的电子表格中,发现19-Jul-197/19/2019的值是日期对象。

共享电子表格中包含的脚本如下。

您的脚本:

function Test() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sourceSheetOne = ss.getSheetByName("Sheet1");
  var lastRow = sourceSheetOne.getLastRow();

   for (var i = 0 ; i < 12; i++)
   {
     var A_Date = sourceSheetOne.getRange(lastRow -i, 1).getValues().toString();
     sourceSheetOne.getRange(lastRow - i, 4).setNumberFormat("dd/mm/yyyy").setValue(A_Date);

   }
}

不幸的是,在这种情况下,我的回答没有得到体现。这是由于我的英语水平差。我为此表示歉意。因此,请进行如下修改。

模式3:

修改脚本后,请进行以下修改。

从:
var A_Date = sourceSheetOne.getRange(lastRow -i, 1).getValues().toString();
至:
var A_Date = sourceSheetOne.getRange(lastRow -i, 1).getValue();

模式4:

与其他模式一样,以下脚本如何?我认为该脚本的处理成本比上面的要低。

脚本:
function Test() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sourceSheetOne = ss.getSheetByName("Sheet1");
  var lastRow = sourceSheetOne.getLastRow();

  var values = sourceSheetOne.getRange(2, 1, lastRow - 1, 1).getValues();
  sourceSheetOne.getRange(2, 4, values.length, values[0].length).setNumberFormat("dd/mm/yyyy").setValues(values);
}