getValue 方法在单元格中获取日期的一些问题

Some trouble with getValue method in getting date in a cell

我一直在搜索如何在 google 应用程序脚本正确的单元格中获取日期,但我找不到。请不要提供 getDisplayValues(),因为单元格中的日期是 "dd.MM" 格式。我写了一个脚本。获取单元格中的日期,然后将其格式化为 "dd.MM.yy"。但是对于 getValue() 它在我有单元格日期 25.03.2019 的情况下出现草率,并且在收到脚本并格式化后它看起来 24.03.2019.

很可能是您遇到了时区问题。您可能希望电子表格和脚本使用相同的时区。您可以在 spreadsheet settings 和脚本的项目属性菜单中执行此操作。

或者,您可以获得 spreadsheet time zone and use that in your Utilities.formatDate() 函数。

function getAndFormatDate() {
  var spreadsheet = SpreadsheetApp.getActive();
  var sheet = spreadsheet.getSheetByName("Sheet29");
  var cell = sheet.getRange("A1");
  var value = cell.getValue();
  var timeZone = spreadsheet.getSpreadsheetTimeZone(); // Get spreadsheet time zone
  var formattedDate = Utilities.formatDate(value, timeZone, "dd.MM.yy");
  Logger.log(formattedDate);
}