Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Datetime 从google应用程序脚本放入电子表格时,日期格式更改为mm/dd/yyyy_Datetime_Google Apps Script_Google Sheets - Fatal编程技术网

Datetime 从google应用程序脚本放入电子表格时,日期格式更改为mm/dd/yyyy

Datetime 从google应用程序脚本放入电子表格时,日期格式更改为mm/dd/yyyy,datetime,google-apps-script,google-sheets,Datetime,Google Apps Script,Google Sheets,以下是我的简单代码: function doPost(request) { var deviceId="JHjdkfjak123214"; var emailId="sample@sample.com"; var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheets()[0]; var rowvals=[]; var formattedDate = Utilities.formatDate(new Date(), "G

以下是我的简单代码:

function doPost(request) {
  var deviceId="JHjdkfjak123214";
  var emailId="sample@sample.com";

  var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];

  var rowvals=[];
  var formattedDate = Utilities.formatDate(new Date(), "GMT", "dd-MMM-yyyy");
  Logger.log(formattedDate);
  rowvals.push(deviceId);
  rowvals.push(emailId);
  rowvals.push(formattedDate);
  sheet.appendRow(rowvals);
}
运行此代码时,Logger.log会显示如下日期:

29-Jul-2014
但在电子表格中输入的是2014年7月29日。我已使用abc按钮更改了单元格的格式,以便日期列的所有单元格的格式都为dd MMM yyy

现在,手动输入时,日期的格式为dd MMM yyyy。但当通过脚本输入时,它们再次更改为MM/dd/yyyy。
这个问题的解决方案是什么?

您不需要使用将日期转换为字符串的
实用程序.formatDate()
格式化日期

电子表格试图变得聪明,并再次将这些字符串转换为日期,但有时不够聪明

将日期对象保留为日期,您应该获得一致的结果,这些结果对于键盘输入和脚本输出也同样有效

编辑:它确实显示了一个完整的日期值,通过在appendRow之后添加此行来更改代码

  ...
  sheet.getRange(sheet.getLastRow(),3).setNumberFormat('dd MMM yyyy')
}
完整代码如下:

function doPost(request) {
  var deviceId="JHjdkfjak123214";
  var emailId="sample@sample.com";
  var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
  var rowvals=[];
  var formattedDate = new Date();
  Logger.log(formattedDate);
  rowvals.push(deviceId);
  rowvals.push(emailId);
  rowvals.push(formattedDate);
  sheet.appendRow(rowvals);
  sheet.getRange(sheet.getLastRow(),3).setNumberFormat('dd MMM yyyy');// add separators if you want or change the format here
}

你能把密码写出来吗。我不明白你想说什么。如果没有Utilities.formatDate()或其他类似的格式化函数,如何以所需格式输出日期?我只是试着用new Date()代替Utilities.formatDate(),但我得到了:7/29/2014 18:47:10