Как упомянул @Cooper в своем комментарии, вы можете достичь этого с помощью Utilities.formatDate()
.
Я протестировал с помощью приведенного ниже сценария, и формат даты получился именно таким, как вы хотите.
function addDate() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getActiveSheet();
var tz = ss.getSpreadsheetTimeZone();
var d = Utilities.formatDate(new Date(), tz, 'yyyy-MM-dd @ hh:mm:ss.SSS');
sh.appendRow([d,'test']);
}
Все, что вам действительно нужно, это var d
, где указана дата.Для этого я использовал часовой пояс электронной таблицы, но вы можете использовать любой часовой пояс.
var d = Utilities.formatDate(new Date(), tz, 'yyyy-MM-dd @ hh:mm:ss.SSS');
Редактировать:
Пользователь не хочет устанавливать формат датыв самом скрипте вместо этого мы можем взять формат чисел из вышеприведенного столбца, используя getNumberFormat()
, а затем отформатировать новую запись на основе этого, используя setNumberFormat()
.
Подробнее см. скрипт ниже.
function setDate() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sh = ss.getActiveSheet();
var lr = sh.getLastRow();
//get format for last row in column A
var format = sh.getRange(lr, 1).getNumberFormat();
//add new data to sheet
sh.appendRow([new Date(), 'test']);
//format new data
sh.getRange(lr+1, 1).setNumberFormat(format);
}