Я извлекаю даты из столбца в моем листе Google с помощью Google Apps Script, а затем распечатываю их в сообщении (например, «срок действия вашей подписки истекает 19/19/19»).
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName("San Diego"));
var sheet = SpreadsheetApp.getActiveSheet();
var lastRow = sheet.getLastRow();
var dataSet = sheet.getRange(StartingRow,2,lastRow-StartingRow+1,9);
var data = dataSet.getValues();
for (i in data) {
var rowData = data[i];
....
Даты на листе (в rowData [2]) имеют форму MM / DD / YYYY или MM / DD / YY.
Однако, когда я печатаю дату (переменная ExpirationDate ниже) в сообщении, показанная дата на 1 день раньше, чем на листе.
Это происходит с обоими:
var ExpirationDate = Utilities.formatDate(rowData[2],Session.getScriptTimeZone(),"MM/dd/yyyy");
и
var ExpirationDateForCompareInt = new Date(rowData[2]);
var ExpirationDate = Utilities.formatDate(ExpirationDateForCompareInt, Session.getScriptTimeZone(),"MM/dd/yyyy");
Я думал, что rowData [2] в обозначении часового пояса будет интерпретироваться как дата в Калифорнии (Лос-Анджелес), если я правильно читаю документацию.Я в том же часовом поясе, что и ЛА.
Есть идеи?